Skip to main content
summaryrefslogtreecommitdiffstats
blob: d0fb094120937864d63a64a1ffe589bd65191b5e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://www.ibm.com"
 xmlns:po="http://www.ibm.com">
    <annotation>
        <documentation xml:lang="en">
            Purchase order schema example from XML Schema Part 0: Primer
        
            Copyright 2001, IBM Corp. All rights reserved
            Copyright 2001, World Wide Web Consortium, 
            (Massachusetts Institute of Technology, Institut National de Recherche en Informatiqueet en Automatique, Keio University).
            All Rights Reserved.
        </documentation>
    </annotation>

    <element name="purchaseOrder" type="po:PurchaseOrderType"/>

    <element name="comment" type="string"/>

    <complexType name="PurchaseOrderType">
        <sequence>
            <element name="shipTo" type="po:USAddress"/>
            <element name="billTo" type="po:USAddress"/>
            <element ref="po:comment" minOccurs="0"/>
            <element name="items" type="po:Items"/>
        </sequence>
        <attribute name="orderDate" type="date"/>
    </complexType>

    <complexType name="USAddress">
        <sequence>
            <element name="name" type="string"/>
            <element name="street" type="string"/>
            <element name="city" type="string"/>
            <element name="state" type="po:USState"/>
            <element name="zip" type="decimal"/>
        </sequence>
        <attribute name="country" type="NMTOKEN" fixed="US"/>
    </complexType>

    <complexType name="Items">
        <sequence>
            <element name="item" minOccurs="0" maxOccurs="unbounded">
                <complexType>
                    <sequence>
                        <element name="productName" type="string"/>
                        <element name="quantity">
                            <simpleType>
                                <restriction base="positiveInteger">
                                    <maxExclusive value="100"/>
                                </restriction>
                            </simpleType>
                        </element>
                        <element name="USPrice" type="decimal"/>
                        <element ref="po:comment" minOccurs="0"/>
                        <element name="shipDate" type="date" minOccurs="0"/>
                    </sequence>
                    <attribute name="partNum" type="po:SKU" use="required"/>
                </complexType>
            </element>
        </sequence>
    </complexType>

    <simpleType name="SKU">
        <restriction base="string">
            <pattern value="\d{3}-[A-Z]{2}"/>
        </restriction>
    </simpleType>
    
    <simpleType name="USState">
        <restriction base="string">
            <enumeration value="CA"></enumeration>
            <enumeration value="PA"></enumeration>
            <enumeration value="AR"></enumeration>
        </restriction>
    </simpleType>
</schema>

Back to the top