OK,
Thanks for the help guys. I'm going to look though all the reference
material you've mentioned here and see if I can't produce a draft for
my own customization of the schema. I found the
UBL-CommonLibrary-2.0.xls file, in the official spec's, very helpful
(once I realised what it was). Filtering by 'Object Class' has helped
to build a picture of the whole hierarchy.
So basiclly, if I want to represent a complete Catalogue of products I
have use the Catalogue Document which will look something like this:
<?xml version="1.0" encoding="UTF-8"?>
<Catalogue xmlns="urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2">
<CatalogueLine>
<ID>ABC001</ID>
<Item>
<Description>Shirt</Description>
<ItemInstance>
<SerialID>ABC001-SML-BLUE</SerialID>
<AdditionalItemProperty>
<Name>Size</Name>
<Value>Small</Value>
</AdditionalItemProperty>
<AdditionalItemProperty>
<Name>Colour</Name>
<Value>Blue</Value>
</AdditionalItemProperty>
</ItemInstance>
<ItemInstance>
<SerialID>ABC001-LRG-BLUE</SerialID>
<AdditionalItemProperty>
<Name>Size</Name>
<Value>Large</Value>
</AdditionalItemProperty>
<AdditionalItemProperty>
<Name>Colour</Name>
<Value>Blue</Value>
</AdditionalItemProperty>
</ItemInstance>
</Item>
</CatalogueLine>
<CatalogueLine>
<Item>
<Description>Shirt</Description>
<ItemInstance>
...
</ItemInstance>
<ItemInstance>
...
</ItemInstance>
</Item>
</CatalogueLine>
...
</Catalogue>
The most retail systems use a SKU to identify the unique combination
of say Product-Size-Colour. Have I got this right to put it in the
ItemInstance's SerialID?
Does anything seem glaringly wrong about this?