XML/XML Schema/all

Материал из Web эксперт
Перейти к: навигация, поиск

all and Complex type

File: Data.xml
<?xml version="1.0"?>
<Books xmlns="http://www.wbex.ru"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.wbex.ru Schema.xsd">
        <Book>
                <Date>2008</Date>
                <Title>title 1</Title>
                <Author>author 1</Author>
                <ISBN>1-11111-111-1</ISBN>
                <Publisher>Publisher 1</Publisher>
        </Book>
        <Book>
                <ISBN>0-111-11111-1</ISBN>
                <Title>title 2</Title>
                <Author>author 2</Author>
                <Date>2007</Date>
                <Publisher>Publisher 2</Publisher>
        </Book>
        <Book>
                <Publisher>Publisher 3</Publisher>
                <Title>title 3</Title>
                <Author>author 3</Author>
                <Date>2004</Date>
                <ISBN>0-11-111111-1</ISBN>
        </Book>
</Books>

File: Schema.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://www.wbex.ru"
            xmlns="http://www.wbex.ru"
            elementFormDefault="qualified">
    <xsd:element name="Books">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Book" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:all>
                            <xsd:element name="Title" type="xsd:string"/>
                            <xsd:element name="Author" type="xsd:string"/>
                            <xsd:element name="Date" type="xsd:string"/>
                            <xsd:element name="ISBN" type="xsd:string"/>
                            <xsd:element name="Publisher" type="xsd:string"/>
                        </xsd:all>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>



complexType mixed="true" and xsd:all

            
File: Data.xml
<?xml version="1.0"?>
<letter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="Schema.xsd">
  <greeting>
    <hello />
    Hi,
  </greeting>
  <body>
    This is the body.
    <item />
    
    <price />
    
    <arrivalDate />
    
  </body>
  <closing>Just closing.<lax/></closing>
</letter>
File: Schema.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="letter">
    <xsd:complexType mixed="true">
      <xsd:sequence>
        <xsd:element name="greeting">
          <xsd:complexType mixed="true">
            <xsd:group ref="salutations"/>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="body">
          <xsd:complexType mixed="true">
            <xsd:all>
              <xsd:element name="item"/>
              <xsd:element name="price"/>
              <xsd:element name="arrivalDate"/>
            </xsd:all>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="closing">
          <xsd:complexType mixed="true">
            <xsd:complexContent>
              <xsd:restriction base="xsd:anyType">
                <xsd:sequence>
                  <xsd:any processContents="lax"/>
                </xsd:sequence>
              </xsd:restriction>
            </xsd:complexContent>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:group name="salutations">
    <xsd:choice>
      <xsd:element name="hello"/>
      <xsd:element name="hi"/>
      <xsd:element name="dear"/>
    </xsd:choice>
  </xsd:group>
</xsd:schema>