Share via


7 Appendix B: Full XML Schema

For ease of implementation, the following is the full XML schema for this protocol.

 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:tns="http://schemas.microsoft.com/sharepoint/claims/" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/sharepoint/claims/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="ClaimTypes">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerNames" type="tns:ArrayOfString"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:complexType name="ArrayOfString">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
   <xs:element name="ClaimTypesResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="ClaimTypesResult" type="tns:ArrayOfString"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="ClaimValueTypes">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerNames" type="tns:ArrayOfString"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="ClaimValueTypesResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="ClaimValueTypesResult" type="tns:ArrayOfString"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="EntityTypes">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerNames" type="tns:ArrayOfString"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="EntityTypesResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="EntityTypesResult" type="tns:ArrayOfString"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="ProviderSchemas">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerNames" type="tns:ArrayOfString"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="ProviderSchemasResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="ProviderSchemasResult" type="tns:ArrayOfSPProviderSchema"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:complexType name="ArrayOfSPProviderSchema">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="unbounded" name="SPProviderSchema" nillable="true" type="tns:SPProviderSchema"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="SPProviderSchema">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="1" name="DisplayName" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="ProviderName" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="ProviderSchema" type="tns:ArrayOfSPSchemaElement"/>
       <xs:element minOccurs="1" maxOccurs="1" name="SupportsHierarchy" type="xs:boolean"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ArrayOfSPSchemaElement">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="unbounded" name="SPSchemaElement" nillable="true" type="tns:SPSchemaElement"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="SPSchemaElement">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="DisplayName" type="xs:string"/>
       <xs:element minOccurs="1" maxOccurs="1" name="Type" type="tns:SPSchemaElementType"/>
     </xs:sequence>
   </xs:complexType>
   <xs:simpleType name="SPSchemaElementType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="None"/>
       <xs:enumeration value="TableViewOnly"/>
       <xs:enumeration value="DetailViewOnly"/>
       <xs:enumeration value="Both"/>
     </xs:restriction>
   </xs:simpleType>
   <xs:element name="HierarchyProviderSchema">
     <xs:complexType/>
   </xs:element>
   <xs:element name="HierarchyProviderSchemaResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="HierarchyProviderSchemaResult" type="tns:SPProviderSchema"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="GetHierarchyAll">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerNames" type="tns:ArrayOfString"/>
         <xs:element minOccurs="1" maxOccurs="1" name="principalType" type="tns:SPPrincipalType"/>
         <xs:element minOccurs="1" maxOccurs="1" name="numberOfLevels" type="xs:int"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:simpleType name="SPPrincipalType">
     <xs:list>
       <xs:simpleType>
         <xs:restriction base="xs:string">
           <xs:enumeration value="None"/>
           <xs:enumeration value="User"/>
           <xs:enumeration value="DistributionList"/>
           <xs:enumeration value="SecurityGroup"/>
           <xs:enumeration value="SharePointGroup"/>
           <xs:enumeration value="All"/>
         </xs:restriction>
       </xs:simpleType>
     </xs:list>
   </xs:simpleType>
   <xs:element name="GetHierarchyAllResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="GetHierarchyAllResult" type="tns:ArrayOfSPProviderHierarchyTree"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:complexType name="ArrayOfSPProviderHierarchyTree">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="unbounded" name="SPProviderHierarchyTree" nillable="true" type="tns:SPProviderHierarchyTree"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="SPProviderHierarchyTree">
     <xs:complexContent mixed="false">
       <xs:extension base="tns:SPProviderHierarchyElement">
         <xs:sequence>
           <xs:element minOccurs="1" maxOccurs="1" name="IsRoot" type="xs:boolean"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SPProviderHierarchyElement">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="1" name="Nm" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="ProviderName" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="HierarchyNodeID" type="xs:string"/>
       <xs:element minOccurs="1" maxOccurs="1" name="IsLeaf" type="xs:boolean"/>
       <xs:element minOccurs="0" maxOccurs="1" name="Children" type="tns:ArrayOfSPProviderHierarchyNode"/>
       <xs:element minOccurs="0" maxOccurs="1" name="EntityData" type="tns:ArrayOfPickerEntity"/>
       <xs:element minOccurs="1" maxOccurs="1" name="Count" type="xs:int"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ArrayOfSPProviderHierarchyNode">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="unbounded" name="SPProviderHierarchyNode" nillable="true" type="tns:SPProviderHierarchyNode"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="SPProviderHierarchyNode">
     <xs:complexContent mixed="false">
       <xs:extension base="tns:SPProviderHierarchyElement"/>
     </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ArrayOfPickerEntity">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="unbounded" name="PickerEntity" nillable="true" type="tns:PickerEntity"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="PickerEntity">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="1" name="Key" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="DisplayText" type="xs:string"/>
       <xs:element minOccurs="1" maxOccurs="1" name="IsResolved" type="xs:boolean"/>
       <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="EntityType" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="EntityGroupName" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="HierarchyIdentifier"/>
       <xs:element minOccurs="0" maxOccurs="1" name="EntityDataElements" type="tns:ArrayOfPair"/>
       <xs:element minOccurs="0" maxOccurs="1" name="MultipleMatches" type="tns:ArrayOfAnyType"/>
       <xs:element minOccurs="0" maxOccurs="1" name="ProviderName" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="ProviderDisplayName" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ArrayOfPair">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="unbounded" name="Pair" nillable="true" type="tns:Pair"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Pair">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="1" name="First"/>
       <xs:element minOccurs="0" maxOccurs="1" name="Second"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ArrayOfAnyType">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="unbounded" name="anyType" nillable="true"/>
     </xs:sequence>
   </xs:complexType>
   <xs:element name="GetHierarchy">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerName" type="xs:string"/>
         <xs:element minOccurs="1" maxOccurs="1" name="principalType" type="tns:SPPrincipalType"/>
         <xs:element minOccurs="0" maxOccurs="1" name="hierarchyNodeID" type="xs:string"/>
         <xs:element minOccurs="1" maxOccurs="1" name="numberOfLevels" type="xs:int"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="GetHierarchyResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="GetHierarchyResult" type="tns:SPProviderHierarchyTree"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="SearchAll">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerNames" type="tns:ArrayOfString"/>
         <xs:element minOccurs="1" maxOccurs="1" name="principalType" type="tns:SPPrincipalType"/>
         <xs:element minOccurs="0" maxOccurs="1" name="searchPattern" type="xs:string"/>
         <xs:element minOccurs="1" maxOccurs="1" name="maxCount" type="xs:int"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="SearchAllResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="SearchAllResult" type="tns:ArrayOfSPProviderHierarchyTree"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="Search">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerSearchArguments" type="tns:ArrayOfSPProviderSearchArguments"/>
         <xs:element minOccurs="1" maxOccurs="1" name="principalType" type="tns:SPPrincipalType"/>
         <xs:element minOccurs="0" maxOccurs="1" name="searchPattern" type="xs:string"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:complexType name="ArrayOfSPProviderSearchArguments">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="unbounded" name="SPProviderSearchArguments" nillable="true" type="tns:SPProviderSearchArguments"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="SPProviderSearchArguments">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="1" name="ProviderName" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="HierarchyNodeID" type="xs:string"/>
       <xs:element minOccurs="1" maxOccurs="1" name="MaxCount" type="xs:int"/>
     </xs:sequence>
   </xs:complexType>
   <xs:element name="SearchResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="SearchResult" type="tns:ArrayOfSPProviderHierarchyTree"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="Resolve">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerNames" type="tns:ArrayOfString"/>
         <xs:element minOccurs="1" maxOccurs="1" name="principalType" type="tns:SPPrincipalType"/>
         <xs:element minOccurs="0" maxOccurs="1" name="resolveInput" type="xs:string"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="ResolveResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="ResolveResult" type="tns:ArrayOfPickerEntity"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="ResolveClaim">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerNames" type="tns:ArrayOfString"/>
         <xs:element minOccurs="1" maxOccurs="1" name="principalType" type="tns:SPPrincipalType"/>
         <xs:element minOccurs="0" maxOccurs="1" name="resolveInput" type="tns:SPClaim"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:complexType name="SPClaim">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="1" name="ClaimType" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="Value" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="ValueType" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="OriginalIssuer" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
   <xs:element name="ResolveClaimResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="ResolveClaimResult" type="tns:ArrayOfPickerEntity"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="ResolveMultiple">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerNames" type="tns:ArrayOfString"/>
         <xs:element minOccurs="1" maxOccurs="1" name="principalType" type="tns:SPPrincipalType"/>
         <xs:element minOccurs="0" maxOccurs="1" name="resolveInput" type="tns:ArrayOfString"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="ResolveMultipleResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="ResolveMultipleResult" type="tns:ArrayOfPickerEntity"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="ResolveMultipleClaim">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="providerNames" type="tns:ArrayOfString"/>
         <xs:element minOccurs="1" maxOccurs="1" name="principalType" type="tns:SPPrincipalType"/>
         <xs:element minOccurs="0" maxOccurs="1" name="resolveInput" type="tns:ArrayOfSPClaim"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:complexType name="ArrayOfSPClaim">
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="unbounded" name="SPClaim" nillable="true" type="tns:SPClaim"/>
     </xs:sequence>
   </xs:complexType>
   <xs:element name="ResolveMultipleClaimResponse">
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="1" name="ResolveMultipleClaimResult" type="tns:ArrayOfPickerEntity"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
 </xs:schema>