Nested complexType : complexType « XML Schema « XML

Home
XML
1.CSS Style
2.SVG
3.XML Schema
4.XQuery
5.XSLT stylesheet
XML » XML Schema » complexType 
Nested complexType


File: Data.xml
<?xml version="1.0"?>
<addr:address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://www.java2s.com Schema.xsd"
              xmlns:addr="http://www.java2s.com"
              addr:language="en"
              addr:ssn="123-45-6789">
  <fullName>
    <first>W</first>
    <middle>S</middle>
    <last>M</last>
  </fullName>
  <contacts>
    <phone addr:location="home" addr:number="111.222.3333"/>
  </contacts>
</addr:address>
File: Schema.xsd
<?xml version="1.0"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.java2s.com"
  xmlns:addr="http://www.java2s.com"
  attributeFormDefault="qualified">
 <xsd:element name="address">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="fullName">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="first" type="addr:nameComponent"/>
            <xsd:element name="middle" type="addr:nameList" minOccurs="0"/>
            <xsd:element name="last" type="addr:nameComponent"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="contacts" type="addr:contactsType" minOccurs="0"/>
    </xsd:sequence>
  <xsd:attributeGroup ref="addr:nationality"/>
  <xsd:attribute name="ssn" type="addr:ssn"/>
  </xsd:complexType>
 </xsd:element>
 
 <xsd:complexType name="nameComponent">
  <xsd:simpleContent>
    <xsd:extension base="addr:nameString"/>
  </xsd:simpleContent>
 </xsd:complexType>

 <xsd:complexType name="nameList">
  <xsd:simpleContent>
    <xsd:extension base="addr:nameListType"/>
  </xsd:simpleContent>
 </xsd:complexType>
 
 <xsd:simpleType name="nameListType">
  <xsd:list itemType="addr:nameString"/>
 </xsd:simpleType>
 
 <xsd:simpleType name="nameString">
  <xsd:restriction base="xsd:string">
    <xsd:maxLength value="50"/>
  </xsd:restriction>
 </xsd:simpleType>
 
 <xsd:simpleType name="ssn">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="\d\d\d-\d\d-\d\d\d\d"/>
  </xsd:restriction>
 </xsd:simpleType>
 
  <xsd:complexType name="contactsType">
    <xsd:sequence>
      <xsd:element name="phone" minOccurs="0">
        <xsd:complexType>
          <xsd:complexContent>
            <xsd:restriction base="xsd:anyType">
              <xsd:attribute name="location" type="addr:locationType"/>
              <xsd:attribute name="number" type="xsd:string"/>
            </xsd:restriction>
          </xsd:complexContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="locationType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="work"/>
      <xsd:enumeration value="home"/>
      <xsd:enumeration value="mobile"/>
    </xsd:restriction>      
  </xsd:simpleType>
  
 <xsd:attributeGroup name="nationality">
  <xsd:attribute name="language" type="xsd:language"/>
 </xsd:attributeGroup>
</xsd:schema>

 
Related examples in the same category
1.Define a complexType
2.Definition of a student element uses primitive types for the child elements
3.complex type with sequence
4.complexType outside the element
5.Anonymous complex type and sequence
6.Complex type with group reference
7.Complex type with complex content
8.Build Complex type with simple Type
9.complexType with extension
10.complexType with restriction
11.complexType mixed="true"
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.