W3C

OASIS-SAML-Protocol-2_0

The document http://docs.oasis-open.org/security/saml/v2.0/saml-schema-protocol-2.0.xsd has been classified as being possibly an Advanced XML Schema Patterns for Databinding 1.0 conformant document as it only exhibits the following patterns:

Status Nodes Name XPath
basic TargetNamespace .[@targetNamespace]/ (., @targetNamespace)
advanced UnqualifiedLocalElements .[not(@elementFormDefault) or @elementFormDefault = 'unqualified']/ (., @elementFormDefault)
basic UnqualifiedLocalAttributes .[not(@attributeFormDefault) or @attributeFormDefault = 'unqualified']/ (., @attributeFormDefault)
basic SchemaVersion ./@version
advanced BlockDefault ./@blockDefault
basic DocumentationElement .//xs:annotation/xs:documentation/ (.., ., .//*, .//@*)
basic IdentifierName .//.[matches(@name, "^[A-Za-z_]([A-Za-z0-9_]0 31)$")]/ (@name)
basic ImportSchema ./xs:import[@namespace and @schemaLocation]/ (., @namespace, @schemaLocation)
basic GlobalElement ./xs:element[@name and @type and contains(@type, ':')]/ (., @name, @type)
advanced GlobalElementUnqualifiedType ./xs:element[@name and @type and not(contains(@type, ':'))]/ (., @name, @type)
advanced ElementTypeDefaultNamespace .//xs:element[@name and @type and not(contains(@type, ':'))]/ (@name, @type)
basic ElementMinOccurs0 .//xs:element[@minOccurs = '0' and (not(@maxOccurs) or @maxOccurs = '1')]/ (@minOccurs, @maxOccurs)
basic ElementMinOccurs0MaxOccursUnbounded .//xs:element[@minOccurs = '0' and @maxOccurs = 'unbounded']/ (@minOccurs, @maxOccurs)
basic ElementMinOccurs1MaxOccursUnbounded .//xs:element[(not(@minOccurs) or @minOccurs = '1') and @maxOccurs = 'unbounded']/ (@minOccurs, @maxOccurs)
basic AttributeOptional .//xs:attribute[@use = 'optional']/ (@use)
advanced AttributeRequired .//xs:attribute[@use = 'required']/ (@use)
basic GlobalSimpleType ./xs:simpleType[@name]/ (., @name)
basic GlobalComplexType ./xs:complexType[@name]/ (., @name)
advanced GlobalComplexTypeAbstract ./xs:complexType[@abstract='true']/ (@abstract)
basic StringEnumerationType .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string') and xs:enumeration]/ (., @base, xs:enumeration/(., @value))
advanced ComplexTypeChoice .//xs:complexType/xs:choice/ (., xs:element/(., @name))
basic ComplexTypeAttribute .//xs:complexType/xs:attribute[@name]/ (., @name)
advanced ComplexTypeOnlyAttributes .//xs:complexType/xs:attribute[../not(xs:choice or xs:sequence or xs:all or xs:anyAttribute or xs:group or xs:attributeGroup or xs:simpleContent or xs:complexContent)]/ (., ..,@use)
basic ComplexTypeSequence .//xs:complexType/xs:sequence/ (., xs:element/(., @name))
advanced ExtendedSequenceLaxAny .//xs:sequence/xs:any[@processContents = 'lax' and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and (not(@namespace) or @namespace = '##any')]/ (., @processContents, @minOccurs, @maxOccurs, @namespace)
advanced ExtendedSequenceLaxOther .//xs:sequence/xs:any[@processContents = 'lax' and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and @namespace = '##other']/ (., @processContents, @minOccurs, @maxOccurs, @namespace)
advanced SequenceChoice .//xs:sequence/xs:choice/(.)
advanced ChoiceElement .//xs:choice/xs:element/(.)
basic SequenceElement .//xs:sequence/xs:element/(.)
basic SequenceSingleRepeatedElement .//xs:sequence[count(xs:element) = 1]/xs:element[@maxOccurs = 'unbounded']/ (., @maxOccurs)
basic ElementTypeReference .//xs:element[@name and @type and namespace-uri-from-QName(resolve-QName(@type,.)) != 'http://www.w3.org/2001/XMLSchema' and contains(@type, ':')]/ (., @name, @type)
basic ElementReference .//xs:element[@ref and contains(@ref, ':')]/ (., @ref)
basic AttributeTypeReference .//xs:attribute[@name and @type and namespace-uri-from-QName(resolve-QName(@type,.)) != 'http://www.w3.org/2001/XMLSchema' and contains(@type, ':')]/ (., @name, @type)
basic StringElement .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:string')]
basic StringAttribute .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:string')]
basic BooleanAttribute .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:boolean')]
basic DateTimeAttribute .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:dateTime')]
basic AnyURIElement .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:anyURI')]
basic AnyURIAttribute .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:anyURI')]
basic NCNameAttribute .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:NCName')]
advanced IDAttribute .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:ID')]
basic NonNegativeIntegerAttribute .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:nonNegativeInteger')]
advanced UnsignedShortAttribute .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:unsignedShort')]
basic ComplexTypeAttributeExtension .//xs:complexType/xs:complexContent[xs:extension[@base]/xs:attribute]/ (., xs:extension/(., @base, xs:attribute/(., @name)))
basic ComplexTypeSequenceExtension .//xs:complexType/xs:complexContent[xs:extension[@base]/xs:sequence]/ (., xs:extension/ (., @base, xs:sequence/(., xs:element/(., @name))))
advanced ChoiceMaxOccursUnbounded .//xs:choice[@maxOccurs = 'unbounded']/ (@maxOccurs)
advanced ChoiceMinOccurs0 .//xs:choice[@minOccurs='0']/ (@minOccurs)
advanced ComplexTypeChoiceExtension .//xs:complexType/xs:complexContent[xs:extension[@base]/xs:choice]/ (., xs:extension/ (., @base, xs:choice/(., xs:element/(., @name))))
advanced ComplexTypeExtension .//xs:complexType/xs:complexContent/xs:extension[@base]/(., @base, ../(.))

<schema TargetNamespace UnqualifiedLocalElements UnqualifiedLocalAttributes targetNamespace="urn:oasis:names:tc:SAML:2.0:protocol" TargetNamespace elementFormDefault="unqualified" UnqualifiedLocalElements attributeFormDefault="unqualified" UnqualifiedLocalAttributes blockDefault="substitution" BlockDefault version="2.0" SchemaVersion >
<import ImportSchema namespace="urn:oasis:names:tc:SAML:2.0:assertion" ImportSchema schemaLocation="saml-schema-assertion-2.0.xsd" ImportSchema />
<import ImportSchema namespace="http://www.w3.org/2000/09/xmldsig#" ImportSchema schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" ImportSchema />
<annotation DocumentationElement >
<documentation DocumentationElement >
Document identifier: saml-schema-protocol-2.0 Location: http://docs.oasis-open.org/security/saml/v2.0/ Revision history: V1.0 (November, 2002): Initial Standard Schema. V1.1 (September, 2003): Updates within the same V1.0 namespace. V2.0 (March, 2005): New protocol schema based in a SAML V2.0 namespace.
</documentation>
</annotation>
<complexType GlobalComplexType name="RequestAbstractType" IdentifierName GlobalComplexType abstract="true" GlobalComplexTypeAbstract >
<attribute ComplexTypeAttribute name="Version" IdentifierName ComplexTypeAttribute type="string" StringAttribute use="required" AttributeRequired />
<attribute ComplexTypeAttribute name="IssueInstant" IdentifierName ComplexTypeAttribute type="dateTime" DateTimeAttribute use="required" AttributeRequired />
<attribute ComplexTypeAttribute name="Destination" IdentifierName ComplexTypeAttribute type="anyURI" AnyURIAttribute use="optional" AttributeOptional />
<attribute ComplexTypeAttribute name="Consent" IdentifierName ComplexTypeAttribute type="anyURI" AnyURIAttribute use="optional" AttributeOptional />
</complexType>
<complexType GlobalComplexType name="ExtensionsType" IdentifierName GlobalComplexType >
<sequence ComplexTypeSequence >
<any ExtendedSequenceLaxOther namespace="##other" ExtendedSequenceLaxOther processContents="lax" ExtendedSequenceLaxOther maxOccurs="unbounded" ExtendedSequenceLaxOther />
</sequence>
</complexType>
<complexType GlobalComplexType name="StatusResponseType" IdentifierName GlobalComplexType >
<attribute ComplexTypeAttribute name="InResponseTo" IdentifierName ComplexTypeAttribute type="NCName" NCNameAttribute use="optional" AttributeOptional />
<attribute ComplexTypeAttribute name="Version" IdentifierName ComplexTypeAttribute type="string" StringAttribute use="required" AttributeRequired />
<attribute ComplexTypeAttribute name="IssueInstant" IdentifierName ComplexTypeAttribute type="dateTime" DateTimeAttribute use="required" AttributeRequired />
<attribute ComplexTypeAttribute name="Destination" IdentifierName ComplexTypeAttribute type="anyURI" AnyURIAttribute use="optional" AttributeOptional />
<attribute ComplexTypeAttribute name="Consent" IdentifierName ComplexTypeAttribute type="anyURI" AnyURIAttribute use="optional" AttributeOptional />
</complexType>
<complexType GlobalComplexType name="StatusType" IdentifierName GlobalComplexType >
<sequence ComplexTypeSequence >
<element ComplexTypeSequence SequenceElement ElementReference ref="samlp:StatusMessage" ElementReference minOccurs="0" ElementMinOccurs0 />
</sequence>
</complexType>
<complexType GlobalComplexType name="StatusCodeType" IdentifierName GlobalComplexType >
<sequence ComplexTypeSequence ></sequence>
<attribute ComplexTypeAttribute name="Value" IdentifierName ComplexTypeAttribute type="anyURI" AnyURIAttribute use="required" AttributeRequired />
</complexType>
<complexType GlobalComplexType name="StatusDetailType" IdentifierName GlobalComplexType >
<sequence ComplexTypeSequence >
<any ExtendedSequenceLaxAny namespace="##any" ExtendedSequenceLaxAny processContents="lax" ExtendedSequenceLaxAny minOccurs="0" ExtendedSequenceLaxAny maxOccurs="unbounded" ExtendedSequenceLaxAny />
</sequence>
</complexType>
<element GlobalElement ElementTypeReference name="AssertionIDRequest" IdentifierName GlobalElement ElementTypeReference type="samlp:AssertionIDRequestType" GlobalElement ElementTypeReference />
<element GlobalElement ElementTypeReference name="SubjectQuery" IdentifierName GlobalElement ElementTypeReference type="samlp:SubjectQueryAbstractType" GlobalElement ElementTypeReference />
<complexType GlobalComplexType name="SubjectQueryAbstractType" IdentifierName GlobalComplexType abstract="true" GlobalComplexTypeAbstract ></complexType>
<element GlobalElement ElementTypeReference name="RequestedAuthnContext" IdentifierName GlobalElement ElementTypeReference type="samlp:RequestedAuthnContextType" GlobalElement ElementTypeReference />
<complexType GlobalComplexType name="RequestedAuthnContextType" IdentifierName GlobalComplexType >
<choice ComplexTypeChoice >
<element ComplexTypeChoice ChoiceElement ElementReference ref="saml:AuthnContextClassRef" ElementReference maxOccurs="unbounded" ElementMinOccurs1MaxOccursUnbounded />
<element ComplexTypeChoice ChoiceElement ElementReference ref="saml:AuthnContextDeclRef" ElementReference maxOccurs="unbounded" ElementMinOccurs1MaxOccursUnbounded />
</choice>
<attribute ComplexTypeAttribute AttributeTypeReference name="Comparison" IdentifierName ComplexTypeAttribute AttributeTypeReference type="samlp:AuthnContextComparisonType" AttributeTypeReference use="optional" AttributeOptional />
</complexType>
<simpleType GlobalSimpleType name="AuthnContextComparisonType" IdentifierName GlobalSimpleType >
<restriction StringEnumerationType base="string" StringEnumerationType >
<enumeration StringEnumerationType value="exact" StringEnumerationType />
<enumeration StringEnumerationType value="minimum" StringEnumerationType />
<enumeration StringEnumerationType value="maximum" StringEnumerationType />
<enumeration StringEnumerationType value="better" StringEnumerationType />
</restriction>
</simpleType>
<element GlobalElement ElementTypeReference name="AuthzDecisionQuery" IdentifierName GlobalElement ElementTypeReference type="samlp:AuthzDecisionQueryType" GlobalElement ElementTypeReference />
<complexType GlobalComplexType name="AuthnRequestType" IdentifierName GlobalComplexType >
<complexContent ComplexTypeAttributeExtension ComplexTypeSequenceExtension ComplexTypeExtension >
<extension ComplexTypeAttributeExtension ComplexTypeSequenceExtension ComplexTypeExtension base="samlp:RequestAbstractType" ComplexTypeAttributeExtension ComplexTypeSequenceExtension ComplexTypeExtension >
<attribute ComplexTypeAttributeExtension name="ProtocolBinding" IdentifierName ComplexTypeAttributeExtension type="anyURI" AnyURIAttribute use="optional" AttributeOptional />
<attribute ComplexTypeAttributeExtension name="AssertionConsumerServiceIndex" IdentifierName ComplexTypeAttributeExtension type="unsignedShort" UnsignedShortAttribute use="optional" AttributeOptional />
<attribute ComplexTypeAttributeExtension name="AssertionConsumerServiceURL" IdentifierName ComplexTypeAttributeExtension type="anyURI" AnyURIAttribute use="optional" AttributeOptional />
<attribute ComplexTypeAttributeExtension name="AttributeConsumingServiceIndex" IdentifierName ComplexTypeAttributeExtension type="unsignedShort" UnsignedShortAttribute use="optional" AttributeOptional />
</extension>
</complexContent>
</complexType>
<complexType GlobalComplexType name="ScopingType" IdentifierName GlobalComplexType >
<attribute ComplexTypeAttribute name="ProxyCount" IdentifierName ComplexTypeAttribute type="nonNegativeInteger" NonNegativeIntegerAttribute use="optional" AttributeOptional />
</complexType>
<complexType GlobalComplexType name="IDPListType" IdentifierName GlobalComplexType >
<sequence ComplexTypeSequence > </sequence>
</complexType>
<complexType GlobalComplexType name="ResponseType" IdentifierName GlobalComplexType >
<complexContent ComplexTypeChoiceExtension ComplexTypeExtension ></complexContent>
</complexType>
<complexType GlobalComplexType name="ArtifactResolveType" IdentifierName GlobalComplexType ></complexType>
<element GlobalElement ElementTypeReference name="ArtifactResponse" IdentifierName GlobalElement ElementTypeReference type="samlp:ArtifactResponseType" GlobalElement ElementTypeReference />
<complexType GlobalComplexType name="ArtifactResponseType" IdentifierName GlobalComplexType >
<complexContent ComplexTypeSequenceExtension ComplexTypeExtension >
<extension ComplexTypeSequenceExtension ComplexTypeExtension base="samlp:StatusResponseType" ComplexTypeSequenceExtension ComplexTypeExtension >
<sequence ComplexTypeSequenceExtension >
<any ExtendedSequenceLaxAny namespace="##any" ExtendedSequenceLaxAny processContents="lax" ExtendedSequenceLaxAny minOccurs="0" ExtendedSequenceLaxAny />
</sequence>
</extension>
</complexContent>
</complexType>
<element GlobalElement ElementTypeReference name="ManageNameIDRequest" IdentifierName GlobalElement ElementTypeReference type="samlp:ManageNameIDRequestType" GlobalElement ElementTypeReference />
<complexType GlobalComplexType name="ManageNameIDRequestType" IdentifierName GlobalComplexType >
<complexContent ComplexTypeSequenceExtension ComplexTypeExtension >
<extension ComplexTypeSequenceExtension ComplexTypeExtension base="samlp:RequestAbstractType" ComplexTypeSequenceExtension ComplexTypeExtension >
<sequence ComplexTypeSequenceExtension >
<choice SequenceChoice >
<element ChoiceElement ElementReference ref="saml:NameID" ElementReference />
<element ChoiceElement ElementReference ref="saml:EncryptedID" ElementReference />
</choice>
<choice SequenceChoice >
<element ChoiceElement ElementReference ref="samlp:NewID" ElementReference />
<element ChoiceElement ElementReference ref="samlp:NewEncryptedID" ElementReference />
<element ChoiceElement ElementReference ref="samlp:Terminate" ElementReference />
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType GlobalComplexType name="TerminateType" IdentifierName GlobalComplexType />
<element GlobalElement ElementTypeReference name="ManageNameIDResponse" IdentifierName GlobalElement ElementTypeReference type="samlp:StatusResponseType" GlobalElement ElementTypeReference />
<element GlobalElement ElementTypeReference name="NameIDMappingRequest" IdentifierName GlobalElement ElementTypeReference type="samlp:NameIDMappingRequestType" GlobalElement ElementTypeReference />
<complexType GlobalComplexType name="NameIDMappingRequestType" IdentifierName GlobalComplexType >
<complexContent ComplexTypeSequenceExtension ComplexTypeExtension >
<extension ComplexTypeSequenceExtension ComplexTypeExtension base="samlp:RequestAbstractType" ComplexTypeSequenceExtension ComplexTypeExtension >
<sequence ComplexTypeSequenceExtension >
<choice SequenceChoice >
<element ChoiceElement ElementReference ref="saml:BaseID" ElementReference />
<element ChoiceElement ElementReference ref="saml:NameID" ElementReference />
<element ChoiceElement ElementReference ref="saml:EncryptedID" ElementReference />
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<element GlobalElement ElementTypeReference name="NameIDMappingResponse" IdentifierName GlobalElement ElementTypeReference type="samlp:NameIDMappingResponseType" GlobalElement ElementTypeReference />
<complexType GlobalComplexType name="NameIDMappingResponseType" IdentifierName GlobalComplexType ></complexType>
</schema>

This document was produced by the W3C XML Schema Patterns for Databinding Working Group. Comments on this document may be sent to the public public-xsd-databinding-comments@w3.org mailing list (public archive).