aboutsummaryrefslogtreecommitdiff
path: root/xsd
diff options
context:
space:
mode:
Diffstat (limited to 'xsd')
-rw-r--r--xsd/ee-index.xsd24
-rw-r--r--xsd/ee.xsd106
2 files changed, 106 insertions, 24 deletions
diff --git a/xsd/ee-index.xsd b/xsd/ee-index.xsd
deleted file mode 100644
index 21dbeb2..0000000
--- a/xsd/ee-index.xsd
+++ /dev/null
@@ -1,24 +0,0 @@
-<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: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>
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>