Allowing Any Elements or Attributes from a Particular Namespace : elementFormDefault « XML Schema « XML Tutorial






File: Data.xml
<?xml version="1.0"?>
<library xmlns="http://java2s.com/ns/library"
  xmlns:mkt="http://java2s.com/ns/library/mkt">
  <book id="b0836217462">
    <title>title</title>
    <authors>
      <person id="CMS">
        <name>name</name>
      </person>
    </authors>
    <mkt:cover>Paperback</mkt:cover>
    <mkt:pages>128</mkt:pages>
  </book>
</library>

File: Schema.xsd
<?xml version="1.0"?>
<xs:schema targetNamespace="http://java2s.com/ns/library"
  elementFormDefault="qualified"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns="http://java2s.com/ns/library">
  <xs:element name="library">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="book" />
      </xs:sequence>
      <xs:anyAttribute
        namespace="http://java2s.com/ns/library/mkt"
        processContents="skip" />
    </xs:complexType>
  </xs:element>
  <xs:element name="book">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="title" type="xs:string" />
        <xs:element name="authors">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="person">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="name"
                      type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="id"
                    type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace="http://java2s.com/ns/library/mkt"
          processContents="skip" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="id" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string" />
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>

</xs:schema>








3.90.elementFormDefault
3.90.1.Namespace Qualification
3.90.2.Allowing Any Elements or Attributes from a Particular Namespace