| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| --> |
| <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
| xmlns="http://www.example.com/PO" targetNamespace="http://www.example.com/PO"> |
| |
| <xsd:element name="purchaseOrder" type="PurchaseOrderType"/> |
| <xsd:element name="comment" type="xsd:string"/> |
| |
| <xsd:complexType name="PurchaseOrderType"> |
| <xsd:sequence> |
| <xsd:element name="shipTo" type="USAddress"/> |
| <xsd:element name="billTo" type="USAddress"/> |
| <xsd:element ref="comment" minOccurs="0"/> |
| <xsd:element name="items" type="Items"/> |
| |
| </xsd:sequence> |
| <xsd:attribute name="orderDate" type="xsd:date"/> |
| </xsd:complexType> |
| |
| <xsd:complexType name="USAddress"> |
| <xsd:sequence> |
| <xsd:element name="name" type="xsd:string"/> |
| |
| <xsd:element name="street" type="xsd:string"/> |
| <xsd:element name="city" type="xsd:string"/> |
| <xsd:element name="state" type="xsd:string"/> |
| <xsd:element name="zip" type="xsd:decimal"/> |
| </xsd:sequence> |
| <xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/> |
| |
| </xsd:complexType> |
| |
| <xsd:complexType name="Items"> |
| <xsd:sequence> |
| <xsd:element name="item" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:complexType> |
| <xsd:sequence> |
| |
| <xsd:element name="productName" type="xsd:string"/> |
| <xsd:element name="price" type="xsd:decimal"/> |
| <xsd:element name="quantity"> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:positiveInteger"> |
| <xsd:maxExclusive value="100"/> |
| </xsd:restriction> |
| |
| </xsd:simpleType> |
| </xsd:element> |
| <xsd:element ref="comment" minOccurs="0"/> |
| <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> |
| </xsd:sequence> |
| |
| <xsd:attribute name="partNum" type="SKU" use="required"/> |
| </xsd:complexType> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:simpleType name="SKU"> |
| |
| <xsd:restriction base="xsd:string"> |
| <xsd:pattern value="\d{3}-[A-Z]{2}"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:schema> |