Global attibute definitions : Salami Slice « XML Schema « XML

Home
XML
1.CSS Style
2.SVG
3.XML Schema
4.XQuery
5.XSLT stylesheet
XML » XML Schema » Salami Slice 
Global attibute definitions


File: Data.xml

<?xml version="1.0" standalone="yes"?>
<statement 
 xmlns="http://www.java2s.com/statement"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.java2s.com/statement Schema.xsd">
           
   <customer name="name 1" number="CUST123" type="VIP"/>
   <orders count="2">
      <order number="ORD100" owner="CUST123" total="500.00">
         <items>
            <item quantity="5" price="100">
              <description>item 1</description>
            </item>
            <item quantity="2" price="50">
              <description>item 2</description>
            </item>
         </items>
      </order>
      <order number="ORD101" owner="CUST123" total="150.00">
         <items>
            <item quantity="6" price="25">
              <description>item 3</description>
            </item>
         </items>
      </order>
   </orders>
</statement>
File: Schema.xsd

<?xml version="1.0" ?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.java2s.com/statement"
  xmlns="http://www.java2s.com/statement">
    <xs:attributeGroup name="CustAttrs">
      <xs:attribute name="number" type="xs:ID" />
    <xs:attribute name="name"   type="xs:string" />
    <xs:attribute name="type"   type="xs:string" use="optional" default="normal"  />
  </xs:attributeGroup >
  <xs:element name="statement">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="customer" />
        <xs:element ref="orders" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="customer">
    <xs:complexType>
      <xs:sequence />
      <xs:attributeGroup ref="CustAttrs" />      
    </xs:complexType>
  </xs:element>
  <xs:element name="orders">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="order"
         maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="count" 
       type="xs:nonNegativeInteger" />
    </xs:complexType>
  </xs:element>
  <xs:element name="order">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="items" />
      </xs:sequence>
      <xs:attribute name="number" type="xs:ID" />
      <xs:attribute name="owner"  type="xs:IDREF" />
      <xs:attribute name="total"  type="xs:decimal" />
    </xs:complexType>
  </xs:element>
  <xs:element name="items">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="item" 
         maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="item">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="description" />
      </xs:sequence>
      <xs:attribute name="quantity" type="xs:nonNegativeInteger" />
      <xs:attribute name="price"    type="xs:decimal" />
    </xs:complexType>
  </xs:element>
  <xs:element name="description" type="xs:string" />
</xs:schema>

 
Related examples in the same category
1.Salami Slice Design
2.Reuse complex type
3.Ref and Salami Slice
4.different types with the same name
5.Reuse data type defined
6.Reuse data type defined in another xml schema file
7.Schema for XSchema elements
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.