[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Prototype -ver-sdg-4 (polymorphism / ATG2 CCTS schema alignment)
Please find attached a further prototype along with some observations relating to ATG2 1.1 schema alignment
(as usual I have renamed the extension to .zzz so please rename back to .zip on saving)
This Prototype (-ver-sdg-4) demonstrates both the use of the limited substitutionGroup design proposal for polymorphism (VER8 and VER9)
and the imported use of ATG2 CCTS schemas.
The following points are noted:
1. UBL's Measure/measureUnitCode becomes Measure/unitCode.
2. UBL's Quantity/quantityUnitCode becomes Quantity/unitCode.
3. UBL's Amount/amountCurrencyID becomes Amount/currencyID.
With the ATG2 unqualified datatype amount being bound to a currency codelist there can no longer be a UBLAmount
as the ATG2 Amount takes it place and does not allow further specialization of this kind.
4. Certain changes from complexContent to simpleContent have to be made in certain UBL schemas due to the ATG2 design of the CCTS schemas..
5. There will need to be a revision (not included here) to the naming of newly global types such as for CurrencyCodeType and other code types.
(Whereas in these prototype schemas the simple use of CodeType and IdentifierType has been adopted, it has been commented
that these names probably do not correctly follow nor appear consistent with the UBL NDR.)
6. These schemas only demonstrate integrity for 'xsdrt' schemas, that is, without the documentation/annotations (except in the ATG2 schemas).
7. There will likely need to be consideration of the fact the ATG2 CCTS schemas have their own codelist schemas associated with them and
examination of how these should relate to UBL codelist schemas. For this demonstration all the ATG2 schemas have been imported
into the UBL schemas with the ATG2 schemas completely unchanged.
8. Regarding the Amount and the Measure and Quantity datatypes in the ATG2 schemas, a real concern is that
there seems to me to be reliance on use of a namespace rule to provide some of the essential (to business
and legal parties) metadata such as the associated codelist and codelist version IDs. My concern is that
these namespaces will not make it into instances and so may be lost for future examiners of the documents.
I'd very strongly suggest remedying this with UBL specialized datatypes (as for UBAmount in UBL 1.0) but
I'm not sure whether/how this may be achieved without the appropriate attributes existing in the ATG2 'unqualified
datatypes'. I've not attempted to resolve this issue in these prototypes. Rather I have used the ATG2 Amount
in place of the UBL 1.0 UBLAmount but I'd not recommend this in practise. Perhaps, in the worse case scenario,
the UBL 1.0 Specialized Datatypes schema and dependancy schemas should be continued into UBL 2.0. This might
be undesirable since the UBLAmount forces use of the 0.3 version of the currency codelist which might need updating
for UBl 2.0. An alternative would then be to keep the UBL 1.0 unspecialized datatypes schema in UBL 2.0 (imported
from UBL 1.0 along with imports of the ATG2 1.1 schemas) and to base new UBL 2.0 specialized datatypes on that.
To test the schema design for backwards compatibility preservation, instances with every element and attribute were
generated (with XML Spy) and validated against the 2.0 prototype schemas and then validated again after just the
schemaLocation attribute values were changed to values of the 2.1 and 2.2 prototype schemas. This was successful.
(Tests to demonstrate correct workings of polymorphism had already been successful in the previous prototype '-ver-sdg-2'.)