Build Complex type with simple Type : complexType « XML Schema « XML






Build Complex type with simple Type



File: Data.xml

<?xml version="1.0"?>
<products xmlns ="http://www.java2s.com"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.java2s.com Schema.xsd">
      <product>
          <name>name 1</name>
          <image>a.gif</image>
          <description>description 1</description>
          <warranty>lifetime warranty</warranty>
          <cost>1.1</cost>
          <retailer>http://www.java2s.com</retailer>
      </product>
      <product>
          <name>name 2</name>
          <image>b.gif</image>
          <description>description 2</description>
          <cost>22.00</cost>
          <retailer>http://www.java2s.com</retailer>
      </product>
</products>


File: Schema.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://www.java2s.com"
            xmlns="http://www.java2s.com"
            elementFormDefault="qualified">
    <xsd:element name="products">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="product" minOccurs="0" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="name" type="xsd:string"/>
                            <xsd:element name="image" type="xsd:string"/>
                            <xsd:element name="description" type="xsd:string"/>
                            <xsd:element name="warranty" type="xsd:string" minOccurs="0"/>
                            <xsd:element name="weight" type="xsd:positiveInteger" minOccurs="0"/>
                            <xsd:element name="cost" type="money" maxOccurs="unbounded"/>
                            <xsd:element name="retailer" type="xsd:anyURI"/>
                        </xsd:sequence>
                     </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:simpleType name="money">
        <xsd:restriction base="xsd:decimal">
            <xsd:fractionDigits value="2"/>
        </xsd:restriction>
    </xsd:simpleType>
</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.complexType with extension
9.complexType with restriction
10.complexType mixed="true"
11.Nested complexType