<?xml version="1.0" encoding="UTF-8"?>
<!-- XML Schema (XSD) for sample6.xml and sample8-schema-invalid.xml -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

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

    <xs:complexType name="PurchaseOrderType">
        <xs:sequence>
            <xs:element name="orderDate" type="xs:date"/>
            <xs:element name="customer" type="CustomerType"/>
            <xs:element name="items" type="ItemsType"/>
        </xs:sequence>
        <xs:attribute name="orderId" type="xs:string" use="required"/>
    </xs:complexType>

    <xs:complexType name="CustomerType">
        <xs:sequence>
            <xs:element name="name" type="xs:string"/>
            <xs:element name="email" type="EmailType"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="EmailType">
        <xs:restriction base="xs:string">
            <xs:pattern value="[^@\s]+@[^@\s]+\.[^@\s]+"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="ItemsType">
        <xs:sequence>
            <xs:element name="item" type="ItemType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ItemType">
        <xs:sequence>
            <xs:element name="productName" type="xs:string"/>
            <xs:element name="quantity" type="xs:positiveInteger"/>
            <xs:element name="price" type="xs:decimal"/>
        </xs:sequence>
        <xs:attribute name="sku" type="xs:string" use="required"/>
    </xs:complexType>

</xs:schema>
