W3C

ComplexContentExtensionAnyAttribute Example

<xs:schemaTargetNamespaceUnqualifiedLocalAttributes targetNamespace="http://www.w3.org/2002/ws/databinding/examples/6/09/"TargetNamespace elementFormDefault="qualified"QualifiedLocalElements>
<xs:elementGlobalElementElementTypeReference name="complexContentExtensionAnyAttribute"NonIdentifierNameGlobalElementElementTypeReference type="ex:ComplexContentExtensionAnyAttribute"GlobalElementElementTypeReference/>
<xs:complexTypeGlobalComplexType name="ComplexContentExtensionAnyAttribute"NonIdentifierNameGlobalComplexType>
<xs:complexContentComplexTypeSequenceExtension>
<xs:extensionComplexTypeSequenceExtension base="ex:ComplexTypeToBeExtended"ComplexTypeSequenceExtension> </xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexTypeGlobalComplexType name="ComplexTypeToBeExtended"IdentifierNameGlobalComplexType>
<xs:sequenceComplexTypeSequence> </xs:sequence>
<xs:anyAttributeComplexTypeAnyAttributeAnyAttributeSkip processContents="skip"AnyAttributeSkip/>
</xs:complexType>
<xs:elementGlobalElementSequenceGlobalElementComplexType name="echoComplexContentExtensionAnyAttribute"NonIdentifierNameGlobalElementSequence>
<xs:complexTypeGlobalElementSequenceGlobalElementComplexType>
<xs:sequenceComplexTypeSequenceGlobalElementSequence>
<xs:elementComplexTypeSequenceGlobalElementSequenceSequenceElementElementReference ref="ex:complexContentExtensionAnyAttribute"ElementReference/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

The example schema [ComplexContentExtensionAnyAttribute.xsd] has been classified as being 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)
basic QualifiedLocalElements .[@elementFormDefault = 'qualified']/ (@elementFormDefault)
basic UnqualifiedLocalAttributes .[not(@attributeFormDefault) or @attributeFormDefault = 'unqualified']/ (., @attributeFormDefault)
basic IdentifierName .//.[matches(@name, "^[A-Za-z_]([A-Za-z0-9_]0 31)$")]/ (@name)
basic NonIdentifierName .//.[@name and not(matches(@name, "^[A-Za-z_]([A-Za-z0-9_]0 31)$"))]/ (@name)
basic GlobalElement ./xs:element[@name and @type and contains(@type, ':')]/ (., @name, @type)
basic ElementMinOccurs0 .//xs:element[@minOccurs = '0' and (not(@maxOccurs) or @maxOccurs = '1')]/ (@minOccurs, @maxOccurs)
basic GlobalComplexType ./xs:complexType[@name]/ (., @name)
basic ComplexTypeSequence .//xs:complexType/xs:sequence/ (., xs:element/(., @name))
basic GlobalElementSequence ./xs:element[@name]/xs:complexType/xs:sequence[xs:element]/ (../../(., @name), .., ., xs:element/(., @name))
advanced ComplexTypeAnyAttribute .//xs:complexType/xs:anyAttribute
advanced AnyAttributeSkip .//xs:complexType/xs:anyAttribute[(@processContents = 'skip') and (not(@namespace) or @namespace = '##any')]/ (., @processContents, @namespace)
basic SequenceElement .//xs:sequence/xs:element/(.)
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 StringElement .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:string')]
basic ComplexTypeSequenceExtension .//xs:complexType/xs:complexContent[xs:extension[@base]/xs:sequence]/ (., xs:extension/ (., @base, xs:sequence/(., xs:element/(., @name))))
basic GlobalElementComplexType .//xs:element[parent::xs:schema]/xs:complexType / (.,..)
advanced ComplexContentExtensionAnyAttribute .//xs:complexType/xs:complexContent/xs:extension/xs:anyAttribute/(., @namespace, @processContents)

To facilitate testing, the example schema element has been wrapped in the following descriptions:

The following valid instance documents are provided:

Instance Validity
ComplexContentExtensionAnyAttribute01 true
ComplexContentExtensionAnyAttribute02 true

  <ex:complexContentExtensionAnyAttribute>
        <ex:element1>value1</ex:element1>
        <ex:element2>value2</ex:element2>
      </ex:complexContentExtensionAnyAttribute>
  <ex:complexContentExtensionAnyAttribute>
        <ex:element1>value1</ex:element1>
        <ex:element2>value2</ex:element2>
        <ex:element3>value3</ex:element3>
        <ex:element4>value4</ex:element4>
      </ex:complexContentExtensionAnyAttribute>

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).

Generated from examples.xml $Date: 2008/07/24 08:50:16 $