|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xsd:schema xmlns:epcis="urn:epcglobal:epcis:xsd:1" xmlns:sbdh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:epcglobal="urn:epcglobal:xsd:1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:epcglobal:epcis:xsd:1" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="1.0">
|
|
<xsd:annotation>
|
|
<xsd:documentation xml:lang="en">
|
|
<epcglobal:copyright>Copyright (C) 2006, 2005, 2004 EPCglobal Inc., All Rights Reserved.</epcglobal:copyright>
|
|
<epcglobal:disclaimer>EPCglobal Inc., its members, officers, directors, employees, or agents shall not be liable for any injury, loss, damages, financial or otherwise, arising from, related to, or caused by the use of this document. The use of said document shall constitute your express consent to the foregoing exculpation.</epcglobal:disclaimer>
|
|
<epcglobal:specification>EPC INFORMATION SERVICE (EPCIS) Version 1.0</epcglobal:specification>
|
|
</xsd:documentation>
|
|
</xsd:annotation>
|
|
<xsd:import namespace="urn:epcglobal:xsd:1" schemaLocation="./EPCglobal.xsd"/>
|
|
<xsd:import namespace="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" schemaLocation="./StandardBusinessDocumentHeader.xsd"/>
|
|
<!-- EPCIS CORE ELEMENTS -->
|
|
<xsd:element name="EPCISDocument" type="epcis:EPCISDocumentType"/>
|
|
<xsd:complexType name="EPCISDocumentType">
|
|
<xsd:annotation>
|
|
<xsd:documentation xml:lang="en">
|
|
document that contains a Header and a Body.
|
|
</xsd:documentation>
|
|
</xsd:annotation>
|
|
<xsd:complexContent>
|
|
<xsd:extension base="epcglobal:Document">
|
|
<xsd:sequence>
|
|
<xsd:element name="EPCISHeader" type="epcis:EPCISHeaderType" minOccurs="0"/>
|
|
<xsd:element name="EPCISBody" type="epcis:EPCISBodyType"/>
|
|
<xsd:element name="extension" type="epcis:EPCISDocumentExtensionType" minOccurs="0"/>
|
|
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:extension>
|
|
</xsd:complexContent>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="EPCISHeaderType">
|
|
<xsd:annotation>
|
|
<xsd:documentation xml:lang="en">
|
|
specific header(s) including the Standard Business Document Header.
|
|
</xsd:documentation>
|
|
</xsd:annotation>
|
|
<xsd:sequence>
|
|
<xsd:element ref="sbdh:StandardBusinessDocumentHeader"/>
|
|
<xsd:element name="extension" type="epcis:EPCISHeaderExtensionType" minOccurs="0"/>
|
|
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="EPCISBodyType">
|
|
<xsd:annotation>
|
|
<xsd:documentation xml:lang="en">
|
|
specific body that contains EPCIS related Events.
|
|
</xsd:documentation>
|
|
</xsd:annotation>
|
|
<xsd:sequence>
|
|
<xsd:element name="EventList" type="epcis:EventListType" minOccurs="0"/>
|
|
<xsd:element name="extension" type="epcis:EPCISBodyExtensionType" minOccurs="0"/>
|
|
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<!-- EPCIS CORE ELEMENT TYPES -->
|
|
<xsd:complexType name="EventListType">
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xsd:element name="ObjectEvent" type="epcis:ObjectEventType" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xsd:element name="AggregationEvent" type="epcis:AggregationEventType" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xsd:element name="QuantityEvent" type="epcis:QuantityEventType" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xsd:element name="TransactionEvent" type="epcis:TransactionEventType" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xsd:element name="extension" type="epcis:EPCISEventListExtensionType"/>
|
|
<xsd:any namespace="##other" processContents="lax"/>
|
|
</xsd:choice>
|
|
<!-- Note: the use of "unbounded" in both the xsd:choice element
|
|
and the enclosed xsd:element elements is, strictly speaking,
|
|
redundant. However, this was found to avoid problems with
|
|
certain XML processing tools, and so is retained here.
|
|
-->
|
|
</xsd:complexType>
|
|
<xsd:complexType name="EPCListType">
|
|
<xsd:sequence>
|
|
<xsd:element name="epc" type="epcglobal:EPC" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
<xsd:simpleType name="ActionType">
|
|
<xsd:restriction base="xsd:string">
|
|
<xsd:enumeration value="ADD"/>
|
|
<xsd:enumeration value="OBSERVE"/>
|
|
<xsd:enumeration value="DELETE"/>
|
|
</xsd:restriction>
|
|
</xsd:simpleType>
|
|
<xsd:simpleType name="ParentIDType">
|
|
<xsd:restriction base="xsd:anyURI"/>
|
|
</xsd:simpleType>
|
|
<!-- Standard Vocabulary -->
|
|
<xsd:simpleType name="BusinessStepIDType">
|
|
<xsd:restriction base="xsd:anyURI"/>
|
|
</xsd:simpleType>
|
|
<!-- Standard Vocabulary -->
|
|
<xsd:simpleType name="DispositionIDType">
|
|
<xsd:restriction base="xsd:anyURI"/>
|
|
</xsd:simpleType>
|
|
<!-- User Vocabulary -->
|
|
<xsd:simpleType name="EPCClassType">
|
|
<xsd:restriction base="xsd:anyURI"/>
|
|
</xsd:simpleType>
|
|
<!-- User Vocabulary -->
|
|
<xsd:simpleType name="ReadPointIDType">
|
|
<xsd:restriction base="xsd:anyURI"/>
|
|
</xsd:simpleType>
|
|
<xsd:complexType name="ReadPointType">
|
|
<xsd:sequence>
|
|
<xsd:element name="id" type="epcis:ReadPointIDType"/>
|
|
<xsd:element name="extension" type="epcis:ReadPointExtensionType" minOccurs="0"/>
|
|
<!-- The wildcard below provides the extension mechanism described in Section 9.4 -->
|
|
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="ReadPointExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<!-- User Vocabulary -->
|
|
<xsd:simpleType name="BusinessLocationIDType">
|
|
<xsd:restriction base="xsd:anyURI"/>
|
|
</xsd:simpleType>
|
|
<xsd:complexType name="BusinessLocationType">
|
|
<xsd:sequence>
|
|
<xsd:element name="id" type="epcis:BusinessLocationIDType"/>
|
|
<xsd:element name="extension" type="epcis:BusinessLocationExtensionType" minOccurs="0"/>
|
|
<!-- The wildcard below provides the extension mechanism described in Section 9.4 -->
|
|
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="BusinessLocationExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<!-- User Vocabulary -->
|
|
<xsd:simpleType name="BusinessTransactionIDType">
|
|
<xsd:restriction base="xsd:anyURI"/>
|
|
</xsd:simpleType>
|
|
<!-- Standard Vocabulary -->
|
|
<xsd:simpleType name="BusinessTransactionTypeIDType">
|
|
<xsd:restriction base="xsd:anyURI"/>
|
|
</xsd:simpleType>
|
|
<xsd:complexType name="BusinessTransactionType">
|
|
<xsd:simpleContent>
|
|
<xsd:extension base="epcis:BusinessTransactionIDType">
|
|
<xsd:attribute name="type" type="epcis:BusinessTransactionTypeIDType" use="optional"/>
|
|
</xsd:extension>
|
|
</xsd:simpleContent>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="BusinessTransactionListType">
|
|
<xsd:sequence>
|
|
<xsd:element name="bizTransaction" type="epcis:BusinessTransactionType" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
<!-- items listed alphabetically by name -->
|
|
<!-- Some element types accommodate extensibility in the manner of
|
|
"Versioning XML Vocabularies" by David Orchard (see
|
|
http://www.xml.com/pub/a/2003/12/03/versioning.html).
|
|
|
|
In this approach, an optional <extension> element is defined
|
|
for each extensible element type, where an <extension> element
|
|
may contain future elements defined in the target namespace.
|
|
|
|
In addition to the optional <extension> element, extensible element
|
|
types are declared with a final xsd:any wildcard to accommodate
|
|
future elements defined by third parties (as denoted by the ##other
|
|
namespace).
|
|
|
|
Finally, the xsd:anyAttribute facility is used to allow arbitrary
|
|
attributes to be added to extensible element types. -->
|
|
<xsd:complexType name="EPCISEventType" abstract="true">
|
|
<xsd:annotation>
|
|
<xsd:documentation xml:lang="en">
|
|
base type for all EPCIS events.
|
|
</xsd:documentation>
|
|
</xsd:annotation>
|
|
<xsd:sequence>
|
|
<xsd:element name="eventTime" type="xsd:dateTime"/>
|
|
<xsd:element name="recordTime" type="xsd:dateTime" minOccurs="0"/>
|
|
<xsd:element name="eventTimeZoneOffset" type="xsd:string"/>
|
|
<xsd:element name="baseExtension" type="epcis:EPCISEventExtensionType" minOccurs="0"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="ObjectEventType">
|
|
<xsd:annotation>
|
|
<xsd:documentation xml:lang="en">
|
|
Object Event captures information about an event pertaining to one or more
|
|
objects identified by EPCs.
|
|
</xsd:documentation>
|
|
</xsd:annotation>
|
|
<xsd:complexContent>
|
|
<xsd:extension base="epcis:EPCISEventType">
|
|
<xsd:sequence>
|
|
<xsd:element name="epcList" type="epcis:EPCListType"/>
|
|
<xsd:element name="action" type="epcis:ActionType"/>
|
|
<xsd:element name="bizStep" type="epcis:BusinessStepIDType" minOccurs="0"/>
|
|
<xsd:element name="disposition" type="epcis:DispositionIDType" minOccurs="0"/>
|
|
<xsd:element name="readPoint" type="epcis:ReadPointType" minOccurs="0"/>
|
|
<xsd:element name="bizLocation" type="epcis:BusinessLocationType" minOccurs="0"/>
|
|
<xsd:element name="bizTransactionList" type="epcis:BusinessTransactionListType" minOccurs="0"/>
|
|
<xsd:element name="extension" type="epcis:ObjectEventExtensionType" minOccurs="0"/>
|
|
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:extension>
|
|
</xsd:complexContent>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="AggregationEventType">
|
|
<xsd:annotation>
|
|
<xsd:documentation xml:lang="en">
|
|
Aggregation Event captures an event that applies to objects that
|
|
have a physical association with one another.
|
|
</xsd:documentation>
|
|
</xsd:annotation>
|
|
<xsd:complexContent>
|
|
<xsd:extension base="epcis:EPCISEventType">
|
|
<xsd:sequence>
|
|
<xsd:element name="parentID" type="epcis:ParentIDType" minOccurs="0"/>
|
|
<xsd:element name="childEPCs" type="epcis:EPCListType"/>
|
|
<xsd:element name="action" type="epcis:ActionType"/>
|
|
<xsd:element name="bizStep" type="epcis:BusinessStepIDType" minOccurs="0"/>
|
|
<xsd:element name="disposition" type="epcis:DispositionIDType" minOccurs="0"/>
|
|
<xsd:element name="readPoint" type="epcis:ReadPointType" minOccurs="0"/>
|
|
<xsd:element name="bizLocation" type="epcis:BusinessLocationType" minOccurs="0"/>
|
|
<xsd:element name="bizTransactionList" type="epcis:BusinessTransactionListType" minOccurs="0"/>
|
|
<xsd:element name="extension" type="epcis:AggregationEventExtensionType" minOccurs="0"/>
|
|
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:extension>
|
|
</xsd:complexContent>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="QuantityEventType">
|
|
<xsd:annotation>
|
|
<xsd:documentation xml:lang="en">
|
|
Quantity Event captures an event that takes place with respect to a specified quantity of
|
|
object class.
|
|
</xsd:documentation>
|
|
</xsd:annotation>
|
|
<xsd:complexContent>
|
|
<xsd:extension base="epcis:EPCISEventType">
|
|
<xsd:sequence>
|
|
<xsd:element name="epcClass" type="epcis:EPCClassType"/>
|
|
<xsd:element name="quantity" type="xsd:int"/>
|
|
<xsd:element name="bizStep" type="epcis:BusinessStepIDType" minOccurs="0"/>
|
|
<xsd:element name="disposition" type="epcis:DispositionIDType" minOccurs="0"/>
|
|
<xsd:element name="readPoint" type="epcis:ReadPointType" minOccurs="0"/>
|
|
<xsd:element name="bizLocation" type="epcis:BusinessLocationType" minOccurs="0"/>
|
|
<xsd:element name="bizTransactionList" type="epcis:BusinessTransactionListType" minOccurs="0"/>
|
|
<xsd:element name="extension" type="epcis:QuantityEventExtensionType" minOccurs="0"/>
|
|
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:extension>
|
|
</xsd:complexContent>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="TransactionEventType">
|
|
<xsd:annotation>
|
|
<xsd:documentation xml:lang="en">
|
|
Transaction Event describes the association or disassociation of physical objects to one or more business
|
|
transactions.
|
|
</xsd:documentation>
|
|
</xsd:annotation>
|
|
<xsd:complexContent>
|
|
<xsd:extension base="epcis:EPCISEventType">
|
|
<xsd:sequence>
|
|
<xsd:element name="bizTransactionList" type="epcis:BusinessTransactionListType"/>
|
|
<xsd:element name="parentID" type="epcis:ParentIDType" minOccurs="0"/>
|
|
<xsd:element name="epcList" type="epcis:EPCListType"/>
|
|
<xsd:element name="action" type="epcis:ActionType"/>
|
|
<xsd:element name="bizStep" type="epcis:BusinessStepIDType" minOccurs="0"/>
|
|
<xsd:element name="disposition" type="epcis:DispositionIDType" minOccurs="0"/>
|
|
<xsd:element name="readPoint" type="epcis:ReadPointType" minOccurs="0"/>
|
|
<xsd:element name="bizLocation" type="epcis:BusinessLocationType" minOccurs="0"/>
|
|
<xsd:element name="extension" type="epcis:TransactionEventExtensionType" minOccurs="0"/>
|
|
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:extension>
|
|
</xsd:complexContent>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="EPCISDocumentExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="EPCISHeaderExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="EPCISBodyExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="EPCISEventListExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="EPCISEventExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="ObjectEventExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="AggregationEventExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="QuantityEventExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
<xsd:complexType name="TransactionEventExtensionType">
|
|
<xsd:sequence>
|
|
<xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:anyAttribute processContents="lax"/>
|
|
</xsd:complexType>
|
|
</xsd:schema>
|