Appendix B. SOAP 1.1 Schemas

Table of Contents

The SOAP 1.1 Envelope Schema
The SOAP 1.1 Encoding Schema
W3C® SOFTWARE NOTICE AND LICENSE

This appendix contains the complete, official schema for SOAP 1.1. This is broken up into two documents the envelope schema from http://schemas.xmlsoap.org/soap/envelope/ and the encoding schema from http://schemas.xmlsoap.org/soap/encoding/. The envelope schema declares the SOAP complex types—SOAP-ENV:Envelope, SOAP-ENV:header, SOAP-ENV:Body, etc.— that define the basic structure of a SOAP document. The encoding schema declares the data types used in a SOAP document: SOAP-ENC:int, SOAP-ENC:NMTOKENS, SOAP-ENC:gYear, SOAP-ENC:Array, etc.

Both of these schemas are Copyright 2001 by Martin Gudgin. They are derived from the official SOAP 1.2 schemas, and are subject to the fairly lenient W3C Software Licensing terms are shown in the section called “W3C® SOFTWARE NOTICE AND LICENSE”. The white space has been cleaned up a little to fit everything within the margins of the page. Otherwise these are exactly as published at schemas.xmlsoap.org.

The SOAP 1.1 Envelope Schema

<?xml version='1.0' encoding='UTF-8' ?>

<!-- Schema for the SOAP/1.1 envelope

This schema has been produced using W3C's SOAP Version 1.2 schema 
found at:

     http://www.w3.org/2001/06/soap-envelope

     Copyright 2001 Martin Gudgin, Developmentor.

Changes made are the following:
- reverted namespace to http://schemas.xmlsoap.org/soap/envelope/
- reverted mustUnderstand to only allow 0 and 1 as lexical values

Original copyright:
     
Copyright 2001 W3C (Massachusetts Institute of Technology,
Institut National de Recherche en Informatique et en Automatique,
Keio University). All Rights Reserved.
http://www.w3.org/Consortium/Legal/

This document is governed by the W3C Software License [1] as
described in the FAQ [2].

[1]http://www.w3.org/Consortium/Legal/copyright-software-19980720
[2]http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:tns="http://schemas.xmlsoap.org/soap/envelope/"
    targetNamespace="http://schemas.xmlsoap.org/soap/envelope/" >

     
  <!-- Envelope, header and body -->
  <xs:element name="Envelope" type="tns:Envelope" />
  <xs:complexType name="Envelope" >
    <xs:sequence>
      <xs:element ref="tns:Header" minOccurs="0" />
      <xs:element ref="tns:Body" minOccurs="1" />
      <xs:any namespace="##other" minOccurs="0" 
              maxOccurs="unbounded" processContents="lax" />
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>

  <xs:element name="Header" type="tns:Header" />
  <xs:complexType name="Header" >
    <xs:sequence>
      <xs:any namespace="##other" minOccurs="0" 
              maxOccurs="unbounded" processContents="lax" />
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>
  
  <xs:element name="Body" type="tns:Body" />
  <xs:complexType name="Body" >
    <xs:sequence>
      <xs:any namespace="##any" minOccurs="0" 
              maxOccurs="unbounded" processContents="lax" />
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax" >
	  <xs:annotation>
	    <xs:documentation>
		  Prose in the spec does not specify that attributes are 
      allowed on the Body element
		</xs:documentation>
	  </xs:annotation>
	</xs:anyAttribute>
  </xs:complexType>

       
  <!-- Global Attributes.  The following attributes are intended 
       to be usable via qualified attribute names on any complex 
       type referencing them.  -->
  <xs:attribute name="mustUnderstand" default="0" >	
     <xs:simpleType>
     <xs:restriction base='xs:boolean'>
	   <xs:pattern value='0|1' />
	 </xs:restriction>
   </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="actor" type="xs:anyURI" />

  <xs:simpleType name="encodingStyle" >
    <xs:annotation>
	  <xs:documentation>
	    'encodingStyle' indicates any canonicalization conventions 
      followed in the contents of the containing element.  For 
      example, the value 
      'http://schemas.xmlsoap.org/soap/encoding/' indicates the 
      pattern described in SOAP specification
	  </xs:documentation>
	</xs:annotation>
    <xs:list itemType="xs:anyURI" />
  </xs:simpleType>

  <xs:attributeGroup name="encodingStyle" >
    <xs:attribute name="encodingStyle" type="tns:encodingStyle"/>
  </xs:attributeGroup>

  <xs:complexType name="Fault" final="extension" >
    <xs:annotation>
	  <xs:documentation>
	    Fault reporting structure
	  </xs:documentation>
	</xs:annotation>
    <xs:sequence>
      <xs:element name="faultcode" type="xs:QName" />
      <xs:element name="faultstring" type="xs:string" />
      <xs:element name="faultactor" type="xs:anyURI" 
                  minOccurs="0" />
      <xs:element name="detail" type="tns:detail" minOccurs="0"/>      
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="detail">
    <xs:sequence>
      <xs:any namespace="##any" minOccurs="0" 
              maxOccurs="unbounded" processContents="lax" />
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="lax" /> 
  </xs:complexType>

</xs:schema>


Copyright 2001, 2002 Elliotte Rusty Haroldelharo@metalab.unc.eduLast Modified June 04, 2002
Up To Cafe con Leche