aboutsummaryrefslogtreecommitdiff
path: root/xsd/ee.xsd
diff options
context:
space:
mode:
Diffstat (limited to 'xsd/ee.xsd')
-rw-r--r--xsd/ee.xsd106
1 files changed, 106 insertions, 0 deletions
diff --git a/xsd/ee.xsd b/xsd/ee.xsd
new file mode 100644
index 0000000..7c5c044
--- /dev/null
+++ b/xsd/ee.xsd
@@ -0,0 +1,106 @@
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://purl.org/ee/bom-file"
+ xmlns="http://purl.org/ee/bom-file">
+
+ <xs:attribute name="id" type="xs:string"/>
+
+ <xs:element name="part-collection" type="PartCollection"/>
+ <xs:element name="part" type="Part"/>
+
+ <xs:complexType name="PartCollection">
+ <xs:sequence>
+ <xs:element name="parts" type="PartList" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Part">
+ <xs:sequence>
+ <xs:element name="schema-reference" type="xs:string"/>
+ <xs:element name="part-type" type="xs:anyURI"/>
+ <xs:element name="part-numbers" type="PartNumberList"/>
+ <xs:element name="distributor-info" type="DistributorInfo"/>
+ <xs:element name="facts" type="FactList"/>
+ <xs:element name="price-breaks" type="PriceBreakList"/>
+ </xs:sequence>
+ <xs:attribute ref="id" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="PartList">
+ <xs:sequence>
+ <xs:element name="part" type="Part" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PartNumber">
+ <xs:sequence>
+ <xs:element name="value" type="xs:string"/>
+ <xs:element name="distributor" type="xs:anyURI"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PartNumberList">
+ <xs:sequence>
+ <xs:element name="part-number" type="PartNumber" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Fact">
+ <xs:sequence>
+ <xs:element name="key" type="xs:anyURI"/>
+ <xs:element name="label" type="xs:string"/>
+ <xs:element name="value" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FactList">
+ <xs:sequence>
+ <xs:element name="fact" type="Fact" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DistributorInfo">
+ <xs:sequence>
+ <xs:element name="state" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Amount">
+ <xs:attribute name="value" use="required"/>
+ <xs:attribute name="currency"/>
+ </xs:complexType>
+
+ <xs:complexType name="PriceBreak">
+ <xs:sequence>
+ <xs:element name="quantity" type="xs:anyURI"/>
+ <xs:element name="amount" type="Amount"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PriceBreakList">
+ <xs:sequence>
+ <xs:element name="price-break" type="PriceBreak" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- -->
+
+ <xs:element name="file-index" type="IndexFile"/>
+
+ <xs:complexType name="IndexFile">
+ <xs:sequence>
+ <xs:element name="files" type="FileList" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="File">
+ <xs:attribute name="path" use="required" type="xs:string"/>
+ </xs:complexType>
+
+ <xs:complexType name="FileList">
+ <xs:sequence>
+ <xs:element name="file" type="File" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>