OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl-dev message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: RE:[ubl-dev]DatatypeMethodologyRE:[ubl-dev]SBSandRestrictedData Types


Maybe, since this does keep the same namespace, it
should only be something the UBL TC does - perhaps
to provide UBL for particular contexts. Where then
would xsi:type fit in?

Maybe customisations outside of the UBL TC * should *
only do this with a change of namespace (using
xsd:import rather than xsd:include). So xsi:type
might then not apply and the problem would be that
both the derived and the standard types would be
valid in an instance: so maybe not much use for
restricting xsd or CCTS datatypes I suppose.

All the best and thanks Joe

Steve



Quoting stephen.green@systml.co.uk:

> Hi Joe
>
> I've checked this and
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
> elementFormDefault="qualified" attributeFormDefault="unqualified"
> targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:Invoice-1.0"
> xmlns:in="urn:oasis:names:specification:ubl:schema:xsd:Invoice-1.0">
> 	<xs:include schemaLocation="UBL-Invoice-1.0.xsd"/>
> 	<xs:element name="MyInvoice" type="in:MyInvoiceType"
> substitutionGroup="in:Invoice">
> 		<xs:annotation>
> 			<xs:documentation>This example does nothing more than change the 
> name of the
> root element I guess</xs:documentation>
> 		</xs:annotation>
> 	</xs:element>
> 	<xs:complexType name="MyInvoiceType">
> 		<xs:complexContent>
> 			<xs:extension base="in:InvoiceType"></xs:extension>
> 		</xs:complexContent>
> 	</xs:complexType>
> </xs:schema>
>
> this seems to be valid with the tool I use.
>
> In that case I accept that this is one sort of thing one might wish to do
> to customise UBL. I'm not sure how this will be viewed by the UBL TC of
> course regarding how this would sit with any customisation guidelines UBL
> might provide to supplement UBL 2. We'll see hopefully.
>
> All the best
>
> Steve
>
>
>
>
> Quoting Chiusano Joseph <chiusano_joseph@bah.com>:
>
>> I don't believe there is such a restriction with substitution groups
>> (can anyone clarify that there is one?). The reason I feel comfortable
>> saying that is because the W3C Schema 1.0 Primer example from below
>> shows element "shipComment" as substitutable for element "ipo:comment",
>> and in the instance example it shows shipComment as "ipo:shipComment",
>> which shows that "shipComment" is in the same namespace as "ipo:comment"
>> - and therefore xsd:include must have been used.
>>
>> However, there is always the chance that the Primer example assumed
>> (without stipulating) that the schema in which the substitution group
>> declaration appeared had no target namespace, and namespace coersion
>> occurred for the "shipComment" element because the schema was
>> subsequently imported into another schema whose target namespace was the
>> IPO namespace. Hmmmm....
>>
>> Thanks,
>> Joe
>>
>> Joseph Chiusano
>> Associate
>> Booz Allen Hamilton
>>
>> 700 13th St. NW, Suite 1100
>> Washington, DC 20005
>> O: 202-508-6514
>> C: 202-251-0731
>> Visit us online@ http://www.boozallen.com
>>
>> -----Original Message-----
>> From: stephen.green@systml.co.uk [mailto:stephen.green@systml.co.uk]
>> Sent: Friday, May 12, 2006 6:33 PM
>> To: Chiusano Joseph
>> Cc: ubl-dev@lists.oasis-open.org
>> Subject: RE: RE:
>> [ubl-dev]DatatypeMethodologyRE:[ubl-dev]SBSandRestrictedData Types
>>
>> Sorry, my later posting crossed with yours Joe, so it doesn't follow on
>> from this.
>>
>> I thought substitution groups could only be used with xsd:import and not
>> with xsd:include. Is that correct? Hence the need to have a new
>> namespace.
>>
>> All the best
>>
>> Steve
>>
>>
>> Quoting Chiusano Joseph <chiusano_joseph@bah.com>:
>>
>>> That's ok Steve - I don't feel pressed at all.:)
>>>
>>> It wouldn't entail any rewrites whatsoever of the UBL schemas, or any
>>> changes to them. Here's what I believe someone using UBL who decided
>>> to create substitutions would need to do - let's assume that they are
>>> using the same namespace as UBL:
>>>
>>> - Create a new schema that includes a UBL schema;
>>>
>>> - Declare the CBC namespace as the target namespace, which means that
>>> any global elements in the new schema (including substitution
>>> elements) are in the CBC namespace;
>>>
>>> - Specify the substitution in the new schema - for example:
>>>
>>> <element name="CarrierName" type="qdt:StringMax35Type"
>>>                           substitutionGroup="cbc:Name"/>
>>>
>>> The "CarrierName" element does not need to be declared separately, as
>>> its inclusion in the substitution group declaration above serves as
>>> its declaration (as evidenced by the requirement for a type). Also,
>>> CarrierName would be in the CBC namespace because it doesn't have a
>>> namespace prefix - which is why we cannot call it "Name". If you
>>> declare a "custom" namespace in the new schema and put a prefix such
>> as "cst:"
>>> in front of CarrierName, that would place it in the "custom"
>> namespace.
>>> In this case, you could use the same element name as the head element
>>> (i.e. cst:Name), since the elements are in different namespaces.
>>>
>>> Joe
>>>
>>> Joseph Chiusano
>>> Associate
>>> Booz Allen Hamilton
>>>
>>> 700 13th St. NW, Suite 1100
>>> Washington, DC 20005
>>> O: 202-508-6514
>>> C: 202-251-0731
>>> Visit us online@ http://www.boozallen.com
>>>
>>> -----Original Message-----
>>> From: stephen.green@systml.co.uk [mailto:stephen.green@systml.co.uk]
>>> Sent: Friday, May 12, 2006 6:01 PM
>>> To: Chiusano Joseph
>>> Cc: ubl-dev@lists.oasis-open.org
>>> Subject: RE: RE: [ubl-dev]
>>> DatatypeMethodologyRE:[ubl-dev]SBSandRestrictedData Types
>>>
>>> Joe
>>>
>>> Very sorry to press you on this: but the approach you envisage, if it
>>> were to keep the same namespaces as in standard UBL, what would it
>>> entail? Would it mean rewriting the UBL standard schemas at all and if
>>
>>> so would it involve any publishing of new schemas with unchanged UBL
>>> namespaces?
>>>
>>> Of course there is the question: Is that valid for UBL?
>>> But the question I'm really thinking is: How do you do that?
>>> and: would you actually want to do that?
>>>
>>> So the schemas have substitution groups in them and the same
>>> namespaces as UBL: Is that even possible? And is it likely?
>>>
>>> All the best
>>>
>>> Steve
>>>
>>>
>>>
>>>
>>> Quoting Chiusano Joseph <chiusano_joseph@bah.com>:
>>>
>>>> I don't believe it's a requirement to do so for W3C Schema (my
>>>> research has not uncovered anything to that effect). Whether it's
>>>> best
>>>
>>>> to do so would be a choice, I believe.
>>>>
>>>> Specific to UBL, I am not sure if there is a policy regarding
>>>> namespaces that would require importing the UBL into a schema with a
>>>> new namespace in order to use substitution groups.
>>>>
>>>> Joe
>>>>
>>>> Joseph Chiusano
>>>> Associate
>>>> Booz Allen Hamilton
>>>>
>>>> 700 13th St. NW, Suite 1100
>>>> Washington, DC 20005
>>>> O: 202-508-6514
>>>> C: 202-251-0731
>>>> Visit us online@ http://www.boozallen.com
>>>>
>>>> -----Original Message-----
>>>> From: stephen.green@systml.co.uk [mailto:stephen.green@systml.co.uk]
>>>> Sent: Friday, May 12, 2006 5:47 PM
>>>> To: ubl-dev@lists.oasis-open.org
>>>> Subject: RE: RE: [ubl-dev] Datatype
>>>> MethodologyRE:[ubl-dev]SBSandRestrictedData Types
>>>>
>>>> But if one wanted to use substitution groups with UBL wouldn't one
>>>> have to import the UBL schemas into a schema with a new namespace?
>>>>
>>>> Steve
>>>>
>>>>
>>>> Quoting Chiusano Joseph <chiusano_joseph@bah.com>:
>>>>
>>>>> Actually, with substitution groups you're not required to change the
>>
>>>>> namespace, though you could. That is, the substituting and head
>>>>> elements may be in the same namespace, or different namespaces.
>>>>>
>>>>> Here is the example from the W3C Schema 1.0 Primer, where element
>>>>> "ipo:shipComment" can substitute for head element "ipo:comment":
>>>>>
>>>>> <element name="shipComment" type="string"
>>>>>         substitutionGroup="ipo:comment"/> <element
>>>>> name="customerComment" type="string"
>>>>>         substitutionGroup="ipo:comment"/>
>>>>>
>>>>> And the corresponding XML instance example:
>>>>>
>>>>> ....
>>>>> <items>
>>>>>   <item partNum="833-AA">
>>>>>     <productName>Lapis necklace</productName>
>>>>>     <quantity>1</quantity>
>>>>>     <USPrice>99.95</USPrice>
>>>>>     <ipo:shipComment>
>>>>>       Use gold wrap if possible
>>>>>     </ipo:shipComment>
>>>>>     <ipo:customerComment>
>>>>>       Want this for the holidays!
>>>>>     </ipo:customerComment>
>>>>>     <shipDate>1999-12-05</shipDate>
>>>>>   </item>
>>>>> </items>
>>>>> ....
>>>>>
>>>>> Joe
>>>>>
>>>>> Joseph Chiusano
>>>>> Associate
>>>>> Booz Allen Hamilton
>>>>>
>>>>> 700 13th St. NW, Suite 1100
>>>>> Washington, DC 20005
>>>>> O: 202-508-6514
>>>>> C: 202-251-0731
>>>>> Visit us online@ http://www.boozallen.com
>>>>>
>>>>> -----Original Message-----
>>>>> From: stephen.green@systml.co.uk [mailto:stephen.green@systml.co.uk]
>>>>> Sent: Friday, May 12, 2006 5:14 PM
>>>>> To: Chiusano Joseph
>>>>> Cc: ubl-dev@lists.oasis-open.org
>>>>> Subject: RE: RE: [ubl-dev] Datatype
>>>>> MethodologyRE:[ubl-dev]SBSandRestricted Data Types
>>>>>
>>>>> Hey - but then you have to change the namespace - and is the benefit
>>
>>>>> (is there a clear one?) worth that? However, with Schematron
>>>>> together
>>>
>>>>> with the original schemas one doesn't have to change the namespace
>>>>> and
>>>>
>>>>> there are more options of what one can call valid or invalid or
>>>>> anything in between (as with the SBS where UBL/non-subset elements
>>>>> are
>>>>
>>>>> still valid but flagged).
>>>>>
>>>>> All the best
>>>>>
>>>>> Steve
>>>>>
>>>>>
>>>>> Quoting Chiusano Joseph <chiusano_joseph@bah.com>:
>>>>>
>>>>>> Ah - now the bottom line. I believe I may have talked myself out of
>>
>>>>>> substitution groups as a preferred approach - at least using
>>>>>> substitution groups alone. Instead I've relegated them to being a
>>>>>> "possible" approach. The only (or at least primary) reason for this
>>
>>>>>> is
>>>>>
>>>>>> the issue we have been mentioning, which is that there is no
>>>>>> facility
>>>>
>>>>>> within W3C Schema to control which occurrences of a head element
>>>>>> can
>>>
>>>>>> be substituted with the new element. So one needs to enforce this
>>>>>> outside of W3C Schema, which can be done using Schematron
>>> assertions.
>>>>>> However, using substitution groups along with Schematron assertions
>>
>>>>>> might not be such a bad thing.
>>>>>>
>>>>>> So bottom line, substitution groups may be risky to use without
>>>>>> additional verification abilities, which can be provided by
>>>>> Schematron.
>>>>>>
>>>>>> Joe
>>>>>>
>>>>>> Joseph Chiusano
>>>>>> Associate
>>>>>> Booz Allen Hamilton
>>>>>>
>>>>>> 700 13th St. NW, Suite 1100
>>>>>> Washington, DC 20005
>>>>>> O: 202-508-6514
>>>>>> C: 202-251-0731
>>>>>> Visit us online@ http://www.boozallen.com
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: stephen.green@systml.co.uk
>>>>>> [mailto:stephen.green@systml.co.uk]
>>>>>> Sent: Friday, May 12, 2006 4:27 PM
>>>>>> To: Chiusano Joseph
>>>>>> Cc: ubl-dev@lists.oasis-open.org
>>>>>> Subject: RE: RE: [ubl-dev] Datatype Methodology
>>>>>> RE:[ubl-dev]SBSandRestricted Data Types
>>>>>>
>>>>>> Joe,
>>>>>>
>>>>>> Any chance you could say how substitution groups might be useful in
>>
>>>>>> your situation?
>>>>>>
>>>>>> All the best
>>>>>>
>>>>>> Steve
>>>>>>
>>>>>>
>>>>>> Quoting Chiusano Joseph <chiusano_joseph@bah.com>:
>>>>>>
>>>>>>> Oops, meant to answer the rest of the questions:
>>>>>>>
>>>>>>> <Quote>
>>>>>>> If redefine were used, how useful would xsi:type be? Not very I
>>>>>>> suspect, if again the schema doesn't enforce the restriction but
>>>>>>> if,
>>>>
>>>>>>> despite an instance using the redefined schema as the schema
>>>>>>> location,
>>>>>>
>>>>>>> the onus is on the instance producer to decide whether the
>>>>>>> restricted
>>>>>
>>>>>>> datatype is
>>>>>>> used: after all it is the receiving system which wants the
>>>>>> restriction.
>>>>>>> </Quote>
>>>>>>>
>>>>>>> I believe xsi:type is required for redefine, not optional - so I
>>>>>>> believe it's beyond the question of it being useful (though
>>>>>>> opinions
>>>>
>>>>>>> on this are valid of course). The onus indeed is on the instance
>>>>>>> producer to decide whether the restricted datatype is used - which
>>
>>>>>>> of
>>>>>
>>>>>>> course adds additional complexity to producing the instance (and a
>>
>>>>>>> margin for error by specifying the incorrect xsi:type value).
>>>>>>>
>>>>>>> <Quote>
>>>>>>> How about just redeclaring everything in a new schema, almost
>>>>>>> exactly
>>>>>
>>>>>>> the same as the original but with the restrictions - with or
>>>>>>> without
>>>>
>>>>>>> the same namespaces?
>>>>>>> </Quote>
>>>>>>>
>>>>>>> Always an option - not necessarily good for interoperability, IMO,
>>
>>>>>>> but
>>>>>>
>>>>>>> in some cases it may be the best resort. For us (the initiative I
>>>>>>> am
>>>>
>>>>>>> working on), I see other options such as substitution groups or
>>> CAM.
>>>>>>> For adding additional elements, there is also the combination of
>>>>>>> substitution groups and NVDL (if the additional elements are in a
>>>>>>> separate namespace), or CAM.
>>>>>>>
>>>>>>> Joe
>>>>>>>
>>>>>>> Joseph Chiusano
>>>>>>> Associate
>>>>>>> Booz Allen Hamilton
>>>>>>>
>>>>>>> 700 13th St. NW, Suite 1100
>>>>>>> Washington, DC 20005
>>>>>>> O: 202-508-6514
>>>>>>> C: 202-251-0731
>>>>>>> Visit us online@ http://www.boozallen.com
>>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: stephen.green@systml.co.uk
>>>>>>> [mailto:stephen.green@systml.co.uk]
>>>>>>> Sent: Friday, May 12, 2006 3:41 PM
>>>>>>> To: Chiusano Joseph
>>>>>>> Cc: ubl-dev@lists.oasis-open.org
>>>>>>> Subject: RE: RE: [ubl-dev] Datatype Methodology RE:
>>>>>>> [ubl-dev]SBSandRestricted Data Types
>>>>>>>
>>>>>>> Hi Joe
>>>>>>>
>>>>>>> Yep I admit it - I was trying to use xsi:type with substitution
>>>>>> groups.
>>>>>>> Ooops. Still, the problem remains then that one can't actually use
>>
>>>>>>> the
>>>>>>
>>>>>>> substitution group to restrict the datatype since there is no
>>>>>> 'abstract'
>>>>>>> declaration in the original schema and no way to prevent the
>>>>>>> unrestricted cbc:Name being valid in an instance. Is that correct?
>>>>>>>
>>>>>>> If redefine were used, how useful would xsi:type be? Not very I
>>>>>>> suspect, if again the schema doesn't enforce the restriction but
>>>>>>> if,
>>>>
>>>>>>> despite an instance using the redefined schema as the schema
>>>>>>> location,
>>>>>>
>>>>>>> the onus is on the instance producer to decide whether the
>>>>>>> restricted
>>>>>
>>>>>>> datatype is
>>>>>>> used: after all it is the receiving system which wants the
>>>>>> restriction.
>>>>>>>
>>>>>>> How about just redeclaring everything in a new schema, almost
>>>>>>> exactly
>>>>>
>>>>>>> the same as the original but with the restrictions - with or
>>>>>>> without
>>>>
>>>>>>> the same namespaces?
>>>>>>>
>>>>>>> Many thanks
>>>>>>>
>>>>>>> Steve
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Quoting Chiusano Joseph <chiusano_joseph@bah.com>:
>>>>>>>
>>>>>>>> Steve,
>>>>>>>>
>>>>>>>> Both datatypes - "cst:MyNameType" and "cbc:Name" - would be valid
>>
>>>>>>>> in
>>>>>
>>>>>>>> an instance, only in that the elements declared to be of those
>>>>>>>> datatypes in the example below ("cst:CarrierName" and "cbc:Name")
>>
>>>>>>>> can
>>>>>>
>>>>>>>> both appear in instances, and "cst:CarrierName" can be
>>>>>>>> substituted
>>>
>>>>>>>> for
>>>>>>> "cbc:Name"
>>>>>>>> wherever "cbc:Name" appears. Is that what you meant by both
>>>>>>>> datatypes
>>>>>>
>>>>>>>> would be valid in an instance?
>>>>>>>>
>>>>>>>> Unless my recent posting was incorrect, xsi:type is not used with
>>
>>>>>>>> substitution groups - which is why you may have been having the
>>>>>>>> problems with tools that you mentioned below, unless you meant
>>>>>>>> that
>>>>
>>>>>>>> you have had problems using xsi:type with redefined datatypes and
>>>>>>> abstract datatypes.
>>>>>>>>
>>>>>>>> Joe
>>>>>>>>
>>>>>>>> Joseph Chiusano
>>>>>>>> Associate
>>>>>>>> Booz Allen Hamilton
>>>>>>>>
>>>>>>>> 700 13th St. NW, Suite 1100
>>>>>>>> Washington, DC 20005
>>>>>>>> O: 202-508-6514
>>>>>>>> C: 202-251-0731
>>>>>>>> Visit us online@ http://www.boozallen.com
>>>>>>>>
>>>>>>>> -----Original Message-----
>>>>>>>> From: stephen.green@systml.co.uk
>>>>>>>> [mailto:stephen.green@systml.co.uk]
>>>>>>>> Sent: Friday, May 12, 2006 3:30 AM
>>>>>>>> To: Chiusano Joseph
>>>>>>>> Cc: ubl-dev@lists.oasis-open.org
>>>>>>>> Subject: RE: RE: [ubl-dev] Datatype Methodology RE: [ubl-dev]
>>>>>>>> SBSandRestricted Data Types
>>>>>>>>
>>>>>>>> Hi Joe
>>>>>>>>
>>>>>>>> But doesn't substitution groups mean that * both * datatypes
>>>>>>>> would
>>>
>>>>>>>> be
>>>>>>
>>>>>>>> valid in an instance? I so far haven't been able to get the
>>>>>>>> xsi:type
>>>>>
>>>>>>>> method to work well with the tools I use.
>>>>>>>>
>>>>>>>> All the best
>>>>>>>>
>>>>>>>> Steve
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Quoting Chiusano Joseph <chiusano_joseph@bah.com>:
>>>>>>>>
>>>>>>>>> Thanks Steve. Regarding the following:
>>>>>>>>>
>>>>>>>>> <Quote>
>>>>>>>>> The derivation looks workable: base an element on the qualified
>>>>>>>>> rather
>>>>>>>>
>>>>>>>>> than unqualified datatype using redefine or a substitution
>> group.
>>>>>>>>> </Quote>
>>>>>>>>>
>>>>>>>>> I don't believe redefine will work here, but substitution groups
>>>>>>> will.
>>>>>>>>> Here's my train of though (please tell me of any derailment:)t:
>>>>>>>>>
>>>>>>>>> - As you mentioned, we would create a qualified data type - it
>>>>>>>>> would
>>>>>>
>>>>>>>>> look as follows (based on cbc:NameType):
>>>>>>>>>
>>>>>>>>> 	<xsd:simpleType name="MyNameType">
>>>>>>>>> 		<xsd:restriction base="cbc:NameType">
>>>>>>>>> 			<xsd:maxLength value="35"/>
>>>>>>>>> 		</xsd:restriction>
>>>>>>>>> 	</xsd:simpleType>
>>>>>>>>>
>>>>>>>>> - At this point, we need to create a new element that is of
>>>>>>>>> "MyNameType". I don't believe we can use redefine here, as (as
>>>>>>>>> you
>>>>>>>>> know) redefine means to redefine a data type. What data type
>>>>>>>>> would
>>>>
>>>>>>>>> we
>>>>>>>
>>>>>>>>> redefine? If we redefined the "udt:NameType" or "cbc:NameType"
>>>>>>>>> data
>>>>>
>>>>>>>>> types, we would have the same issue that I referred to earlier
>>>>>>>>> (a
>>>
>>>>>>>>> ripple effect).
>>>>>>>>>
>>>>>>>>> - However, we could use substitution groups, as you pointed out
>>>>>>>>> (but
>>>>>>
>>>>>>>>> knowing the dangers of using this approach, as highlighted in
>>>>>>>>> the
>>>
>>>>>>>>> long
>>>>>>>>
>>>>>>>>> threads between XML-DEV and UBL-DEV X months ago asking for
>>>>>>>>> input
>>>
>>>>>>>>> on
>>>>>>
>>>>>>>>> usage of substitution groups). Here is an example in which a new
>>
>>>>>>>>> element named "CarrierName", which is of data type
>>>> "cst:MyNameType"
>>>>>>>>> ("cst:" for "custom" namespace) can substitute for the head
>>>>>>>>> element
>>>>>>>> "cbc:Name"):
>>>>>>>>>
>>>>>>>>> 	<element name="CarrierName" type="cst:MyNameType"
>>>>>>>>>            	               substitutionGroup="cbc:Name"/>
>>>>>>>>>
>>>>>>>>> So "cst:CarrierName" can appear in XML documents in place of
>>>>>>> cbc:Name.
>>>>>>>>
>>>>>>>>> I am also wondering if one can use the same name for the
>>>>>>>>> substituting
>>>>>>>
>>>>>>>>> and head elements but different namespaces (i.e. instead of
>>>>>>>>> "CarrierName", use "Name" which would be in the "custom"
>>>>>>>>> namespace
>>>>>>>>> -
>>>>>>
>>>>>>>>> I
>>>>>>>>
>>>>>>>>> have never tried this (will test it out).
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Joe
>>>>>>>>>
>>>>>>>>> Kind Regards,
>>>>>>>>> Joseph Chiusano
>>>>>>>>> Associate
>>>>>>>>> Booz Allen Hamilton
>>>>>>>>>
>>>>>>>>> 700 13th St. NW, Suite 1100
>>>>>>>>> Washington, DC 20005
>>>>>>>>> O: 202-508-6514
>>>>>>>>> C: 202-251-0731
>>>>>>>>> Visit us online@ http://www.boozallen.com
>>>>>>>>>
>>>>>>>>> -----Original Message-----
>>>>>>>>> From: stephen.green@systml.co.uk
>>>>>>>>> [mailto:stephen.green@systml.co.uk]
>>>>>>>>> Sent: Thursday, May 11, 2006 2:51 AM
>>>>>>>>> To: ubl-dev@lists.oasis-open.org
>>>>>>>>> Subject: RE: RE: [ubl-dev] Datatype Methodology RE: [ubl-dev]
>>>>>>>>> SBS
>>>
>>>>>>>>> andRestricted Data Types
>>>>>>>>>
>>>>>>>>> Joe
>>>>>>>>>
>>>>>>>>> Hi. Regarding the technicality of whether W3C XML Schema
>>>>>>>>> derivation
>>>>>
>>>>>>>>> can be used to restrict the datatypes in UBL, it seems more
>>>>>>>>> plausible,
>>>>>>>>
>>>>>>>>> looking at the examples below, that it might be allowed. The
>>>>>>>>> correct
>>>>>>
>>>>>>>>> way to do it, I think, is to create a qualified datatype in
>>>>>>>>> one's
>>>
>>>>>>>>> own
>>>>>>>
>>>>>>>>> qualified datatype schema module. I have an action item to try
>>>>>>>>> this
>>>>>
>>>>>>>>> sort of thing as part of the quality control of the next set of
>>>>>>>>> draft
>>>>>>>
>>>>>>>>> schemas, either during or after the coming plenary meeting in
>>>>>>>> Brussels.
>>>>>>>>> The derivation looks workable: base an element on the qualified
>>>>>>>>> rather
>>>>>>>>
>>>>>>>>> than unqualified datatype using redefine or a substitution
>> group.
>>>>>>>>> It looks workable depending perhaps on how the qualified
>>>>>>>>> datatype
>>>
>>>>>>>>> is
>>>>>>
>>>>>>>>> based on the unqualified datatype it restricts; whether it uses
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 	<xsd:simpleType name="MyIndicatorType">
>>>>>>>>> 		<xsd:restriction base="xsd:boolean">
>>>>>>>>> 			<xsd:pattern value="true"/>
>>>>>>>>> 		</xsd:restriction>
>>>>>>>>> 	</xsd:simpleType>
>>>>>>>>>
>>>>>>>>> or
>>>>>>>>>
>>>>>>>>> 	<xsd:simpleType name="MyIndicatorType">
>>>>>>>>> 		<xsd:restriction base="udt:IndicatorType">
>>>>>>>>> 			<xsd:pattern value="true"/>
>>>>>>>>> 		</xsd:restriction>
>>>>>>>>> 	</xsd:simpleType>
>>>>>>>>>
>>>>>>>>> All the best
>>>>>>>>>
>>>>>>>>> Stephen Green
>>>>>>>>>
>>>>>>>>> Quoting stephen.green@systml.co.uk:
>>>>>>>>>
>>>>>>>>>> Hi Joe,
>>>>>>>>>>
>>>>>>>>>> For example in UBL 1.0 we have the unqualified datatype
>>>>>> 'AmountType'
>>>>>>>>>>
>>>>>>>>>> 	<xsd:complexType name="AmountType">
>>>>>>>>>> 		<xsd:simpleContent>
>>>>>>>>>> 			<xsd:restriction base="cct:AmountType">
>>>>>>>>>> 				<xsd:attribute
>>> name="amountCurrencyID"
>>>>>>>>> type="xsd:normalizedString"
>>>>>>>>>> use="required"/>
>>>>>>>>>> 				<xsd:attribute
>>>>>>>>> name="amountCurrencyCodeListVersionID"
>>>>>>>>>> type="xsd:normalizedString" use="optional"/>
>>>>>>>>>> 			</xsd:restriction>
>>>>>>>>>> 		</xsd:simpleContent>
>>>>>>>>>> 	</xsd:complexType>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> and a corresponding restriction of that UBLAmount which, since
>>>>>>>>>> it
>>>>
>>>>>>>>>> is
>>>>>>>
>>>>>>>>>> based on the unqualified datatype and a restriction of the
>>>>>>>>>> same,
>>>
>>>>>>>>>> would
>>>>>>>>>
>>>>>>>>>> now be called a 'qualified datatype' but was, in UBL 1.0, then
>>>>>>>>>> called
>>>>>>>>
>>>>>>>>>> a 'specialized datatype'
>>>>>>>>>>
>>>>>>>>>> 	<xsd:complexType name="UBLAmountType">
>>>>>>>>>> 		<xsd:simpleContent>
>>>>>>>>>> 			<xsd:restriction base="udt:AmountType">
>>>>>>>>>> 				<xsd:attribute
>>> name="amountCurrencyID"
>>>>>>>>> type="cur:CurrencyCodeContentType"
>>>>>>>>>> use="required"/>
>>>>>>>>>> 				<xsd:attribute
>>>>>>>>> name="amountCurrencyCodeListVersionID"
>>>>>>>>>> type="xsd:normalizedString" use="optional" fixed="0.3"/>
>>>>>>>>>> 			</xsd:restriction>
>>>>>>>>>> 		</xsd:simpleContent>
>>>>>>>>>> 	</xsd:complexType>
>>>>>>>>>>
>>>>>>>>>> In this case the main restriction is that the amountCurrencyID
>>>>>>>>>> is
>>>>
>>>>>>>>>> limited to the one codelist (which is the ISO currency
>>>>>>>>>> codelist)
>>>
>>>>>>>>>> but
>>>>>>>
>>>>>>>>>> the value of the amountCurrencyCodeListVersionID attribute is
>>>>>>>>>> also
>>>>>>>>> restricted to '0.3'.
>>>>>>>>>>
>>>>>>>>>> [At the risk of confusing folk, I'd note that in UBL 2 the
>>>>>>>>>> Amount
>>>>
>>>>>>>>>> is
>>>>>>>
>>>>>>>>>> itself restricted to having the ISO currency codelist as
>>>>>>>>>> implemented
>>>>>>>
>>>>>>>>>> by CEFACT's ATG2 so there is no need for the qualified
>>>>>>>>>> datatype.]
>>>>>>>>>>
>>>>>>>>>> A simpler example, though fictional, would be that if there was
>>
>>>>>>>>>> a
>>>>
>>>>>>>>>> need
>>>>>>>>>
>>>>>>>>>> for a boolean that could only be true, one would have to
>>>>>>>>>> restrict
>>>>
>>>>>>>>>> the
>>>>>>>>
>>>>>>>>>> unqualified Indicator datatype which has a restriction to
>> 'true'
>>>>>>>>>> and
>>>>>>>>> 'false'
>>>>>>>>>> and base the new datatype on that Indicator, giving it new name
>>
>>>>>>>>>> perhaps (though it would get a new namespace anyway) and
>>>>>>>>>> restricting
>>>>>>>
>>>>>>>>>> it to 'true' only.
>>>>>>>>>> In UBL 2 prd there is the ATG2 schema
>>>>>>>>> 'UnqualifiedDataTypeSchemaModule-2.xsd'
>>>>>>>>>> with an Indicator type
>>>>>>>>>>
>>>>>>>>>> 	<xsd:simpleType name="IndicatorType">
>>>>>>>>>> <!-- documentation removed -->
>>>>>>>>>> 		<xsd:restriction base="xsd:boolean">
>>>>>>>>>> 			<xsd:pattern value="false"/>
>>>>>>>>>> 			<xsd:pattern value="true"/>
>>>>>>>>>> 		</xsd:restriction>
>>>>>>>>>> 	</xsd:simpleType>
>>>>>>>>>>
>>>>>>>>>> A corresponding, restricted, qualified datatype might therefore
>>
>>>>>>>>>> be
>>>>>>>>>>
>>>>>>>>>> 	<xsd:simpleType name="MyIndicatorType">
>>>>>>>>>> 		<xsd:restriction base="xsd:boolean">
>>>>>>>>>> 			<xsd:pattern value="true"/>
>>>>>>>>>> 		</xsd:restriction>
>>>>>>>>>> 	</xsd:simpleType>
>>>>>>>>>>
>>>>>>>>>> or
>>>>>>>>>>
>>>>>>>>>> 	<xsd:simpleType name="MyIndicatorType">
>>>>>>>>>> 		<xsd:restriction base="udt:IndicatorType">
>>>>>>>>>> 			<xsd:pattern value="true"/>
>>>>>>>>>> 		</xsd:restriction>
>>>>>>>>>> 	</xsd:simpleType>
>>>>>>>>>>
>>>>>>>>>> (I'm not yet certain which of the above is most correct -
>>>>>>>>>> perhaps
>>>>
>>>>>>>>>> it
>>>>>>>
>>>>>>>>>> is a matter of interpretation of the CCTS.)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> All the best
>>>>>>>>>>
>>>>>>>>>> Steve
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Quoting Chiusano Joseph <chiusano_joseph@bah.com>:
>>>>>>>>>>
>>>>>>>>>>> Thanks Steve. Please remind me again what a "qualified"
>>>>>>>>>>> datatype
>>>>
>>>>>>>>>>> would be? Would it be, for example, a data type whose name
>>>>>>>>>>> (and
>>>>>>>>>>> definition) reflects the restriction that we are speaking of?
>>>>>>>>>>> So
>>>>
>>>>>>>>>>> for
>>>>>>>>
>>>>>>>>>>> example, instead of the unqualified "IdentifierType", we would
>>
>>>>>>>>>>> have
>>>>>>>
>>>>>>>>>>> an identifier type that has a pattern restriction and it would
>>
>>>>>>>>>>> be
>>>>>
>>>>>>>>>>> called "SSNIdentifierType"?
>>>>>>>>>>>
>>>>>>>>>>> Joe
>>>>>>>>>>>
>>>>>>>>>>> Joseph Chiusano
>>>>>>>>>>> Associate
>>>>>>>>>>> Booz Allen Hamilton
>>>>>>>>>>>
>>>>>>>>>>> 700 13th St. NW, Suite 1100
>>>>>>>>>>> Washington, DC 20005
>>>>>>>>>>> O: 202-508-6514
>>>>>>>>>>> C: 202-251-0731
>>>>>>>>>>> Visit us online@ http://www.boozallen.com
>>>>>>>>>>>
>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>> From: stephen.green@systml.co.uk
>>>>>>>>>>> [mailto:stephen.green@systml.co.uk]
>>>>>>>>>>> Sent: Wednesday, May 10, 2006 5:38 PM
>>>>>>>>>>> To: ubl-dev@lists.oasis-open.org
>>>>>>>>>>> Subject: RE: RE: [ubl-dev] Datatype Methodology RE: [ubl-dev]
>>>>>>>>>>> SBS
>>>>>
>>>>>>>>>>> and
>>>>>>>>>
>>>>>>>>>>> Restricted Data Types
>>>>>>>>>>>
>>>>>>>>>>> Hi Joe
>>>>>>>>>>>
>>>>>>>>>>> Absolutely. Sorry, I'd forgotten this and it isn't all that
>>>>>>> obvious.
>>>>>>>>>>> The thing is that the datatypes UBL uses are mostly what the
>>>>>>>>>>> CCTS
>>>>>
>>>>>>>>>>> calls unqualified. To redefine them one really (as,
>>>>>>>>>>> thankfully,
>>>
>>>>>>>>>>> Mark
>>>>>>>>
>>>>>>>>>>> Crawford explained earlier) has to create new datatypes based
>>>>>>>>>>> on
>>>>
>>>>>>>>>>> them
>>>>>>>>>
>>>>>>>>>>> which are called qualified datatypes. The element based at
>>>>>>>>>>> present
>>>>>>
>>>>>>>>>>> on
>>>>>>>>>
>>>>>>>>>>> the unqualified datatype would have to somehow be replaced, I
>>>>>>>>>>> think,
>>>>>>>>
>>>>>>>>>>> not being able to see how to do it any other way, with a new
>>>>>>>>>>> element
>>>>>>>>
>>>>>>>>>>> based on the restricted qualified datatype. To my mind it
>>>>>>>>>>> needs
>>>
>>>>>>>>>>> a
>>>>>
>>>>>>>>>>> new
>>>>>>>>>
>>>>>>>>>>> element and a restricting out of the old element, rather than
>>>>>>>>>>> a
>>>
>>>>>>>>>>> redefine of the old element. I can't see how to do the latter
>>>>>>>>>>> with
>>>>>>>>> XSD derivation.
>>>>>>>>>>> If an element was based on a UBL-qualified datatype then
>>>>>>>>>>> maybe,
>>>
>>>>>>>>>>> since
>>>>>>>>>
>>>>>>>>>>> it would be under UBL control as it were, one could use XSD
>>>>>>>>>>> redefine
>>>>>>>>
>>>>>>>>>>> to restrict it. That is interesting. It may mean that
>>>>>>>>>>> restriction
>>>>>
>>>>>>>>>>> is
>>>>>>>>
>>>>>>>>>>> limited by use of an unqualified datatype, especially when
>>>>>>>>>>> CCTS
>>>
>>>>>>>>>>> (and
>>>>>>>>>>> UBL) compliance is required.
>>>>>>>>>>> I think the same applies to the XSD substitution group method.
>>>>>>>>>>>
>>>>>>>>>>> All the best
>>>>>>>>>>>
>>>>>>>>>>> Stephen Green
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Quoting Chiusano Joseph <chiusano_joseph@bah.com>:
>>>>>>>>>>>
>>>>>>>>>>>> P.S. Regarding xsd:redefine: A redefine of this element
>>>>>>>>>>>> (Carrier
>>>>>
>>>>>>>>>>>> Name,
>>>>>>>>>>>
>>>>>>>>>>>> represented as cbc:Name) does not seem possible (unless my
>>>>>>>>>>>> dusting
>>>>>>>
>>>>>>>>>>>> off
>>>>>>>>>>>
>>>>>>>>>>>> of the xsd:redefine feature brings misunderstanding with it),
>>
>>>>>>>>>>>> as
>>>>>
>>>>>>>>>>>> one
>>>>>>>>>
>>>>>>>>>>>> would need to redefine its type, which is cbc:NameType, to
>>>>>>>>>>>> have
>>>>
>>>>>>>>>>>> a
>>>>>>
>>>>>>>>>>>> max of
>>>>>>>>>>>> 35 characters rather than an unlimited number.
>>>>>>>>>>>>
>>>>>>>>>>>> However, this would cause a ripple effect across all other
>>>>>>>>>>>> references to the cbc:Name element within the Despatch Advice
>>
>>>>>>>>>>>> schema
>>>>>>>>>
>>>>>>>>>>>> (through references within the Common Aggregate Components
>>>>>>>>>>>> schema),
>>>>>>>>
>>>>>>>>>>>> which would
>>>>>>>>>>>
>>>>>>>>>>>> in effect cause all other cbc:Name elements to be a max of 35
>>
>>>>>>>>>>>> characters. This may or may not be the desired outcome - even
>>
>>>>>>>>>>>> if
>>>>>
>>>>>>>>>>>> by
>>>>>>>>
>>>>>>>>>>>> chance all should be 35 characters, this of course will not
>>>>>>>>>>>> always
>>>>>>>
>>>>>>>>>>>> be the case.
>>>>>>>>>>>>
>>>>>>>>>>>> So unless I am missing something (which someone will tell me
>>>>>>>>>>>> I
>>>
>>>>>>>>>>>> am
>>>>>>
>>>>>>>>>>>> sure:), the xsd:redefine feature will not work in this case.
>>>>>>>>>>>> All
>>>>>
>>>>>>>>>>>> the
>>>>>>>>>
>>>>>>>>>>>> more reason we need alternate approaches.
>>>>>>>>>>>>
>>>>>>>>>>>> Joe
>>>>>>>>>>>>
>>>>>>>>>>>> Joseph Chiusano
>>>>>>>>>>>> Associate
>>>>>>>>>>>> Booz Allen Hamilton
>>>>>>>>>>>>
>>>>>>>>>>>> 700 13th St. NW, Suite 1100
>>>>>>>>>>>> Washington, DC 20005
>>>>>>>>>>>> O: 202-508-6514
>>>>>>>>>>>> C: 202-251-0731
>>>>>>>>>>>> Visit us online@ http://www.boozallen.com
>>>>>>>>>>>>
>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>> From: Chiusano Joseph [mailto:chiusano_joseph@bah.com]
>>>>>>>>>>>> Sent: Wednesday, May 10, 2006 3:41 PM
>>>>>>>>>>>> To: David RR Webber (XML); Stephen Green
>>>>>>>>>>>> Cc: ubl-dev@lists.oasis-open.org
>>>>>>>>>>>> Subject: RE: RE: [ubl-dev] Datatype Methodology RE: [ubl-dev]
>>
>>>>>>>>>>>> SBS
>>>>>>
>>>>>>>>>>>> and Restricted Data Types
>>>>>>>>>>>>
>>>>>>>>>>>> David,
>>>>>>>>>>>>
>>>>>>>>>>>> Thinking more about CAM here: How efficient and
>>>>>>>>>>>> straightforward
>>>>
>>>>>>>>>>>> would it be to restrict the data type of - picking a schema
>>>>>>>>>>>> and
>>>>
>>>>>>>>>>>> element completely at random here - the Carrier Name element
>>>>>>>>>>>> in
>>>>
>>>>>>>>>>>> the
>>>>>>>>
>>>>>>>>>>>> UBL 2.0 Despatch Advice schema to, say, a maximum of 35
>>>>>>> characters?
>>>>>>>>>>>>
>>>>>>>>>>>> Here is the path to that element:
>>>>>>>>>>>> DespatchAdvice/Shipment/Consignment/CarrierParty/PartyName/Na
>>>>>>>>>>>> m
>>>>>>>>>>>> e
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Joe
>>>>>>>>>>>>
>>>>>>>>>>>> Joseph Chiusano
>>>>>>>>>>>> Associate
>>>>>>>>>>>> Booz Allen Hamilton
>>>>>>>>>>>>
>>>>>>>>>>>> 700 13th St. NW, Suite 1100
>>>>>>>>>>>> Washington, DC 20005
>>>>>>>>>>>> O: 202-508-6514
>>>>>>>>>>>> C: 202-251-0731
>>>>>>>>>>>> Visit us online@ http://www.boozallen.com
>>>>>>>>>>>>
>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>> From: David RR Webber (XML) [mailto:david@drrw.info]
>>>>>>>>>>>> Sent: Wednesday, May 10, 2006 11:03 AM
>>>>>>>>>>>> To: Stephen Green
>>>>>>>>>>>> Cc: ubl-dev@lists.oasis-open.org
>>>>>>>>>>>> Subject: RE: RE: [ubl-dev] Datatype Methodology RE: [ubl-dev]
>>
>>>>>>>>>>>> SBS
>>>>>>
>>>>>>>>>>>> and Restricted Data Types
>>>>>>>>>>>>
>>>>>>>>>>>> Stephen,
>>>>>>>>>>>>
>>>>>>>>>>>> I follow your thoughts here.
>>>>>>>>>>>>
>>>>>>>>>>>> We're actively re-visiting on which pieces of the CAM
>>>>>>>>>>>> template
>>>
>>>>>>>>>>>> should be required and which non-normative / extensible.
>>>>>>>>>>>>
>>>>>>>>>>>> Right now the <DataValidation> and <ExternalMapping> are
>>>>>> optional.
>>>>>>>>>>>> Also in jCAM Martin has implemented Maven with these so they
>>>>>>>>>>>> are
>>>>>
>>>>>>>>>>>> fully
>>>>>>>>>>>
>>>>>>>>>>>> extensible - but obviously that is then non-normative - but I
>>
>>>>>>>>>>>> have
>>>>>>>
>>>>>>>>>>>> not
>>>>>>>>>>>
>>>>>>>>>>>> yet updated the spec' to reflect that change.  It's a
>>>>>>>>>>>> critical
>>>
>>>>>>>>>>>> direction
>>>>>>>>>>>> - the realization that you cannot perscribe everything for
>>>>>>>>>>>> everyone
>>>>>>>>>>>> - and that instead - you provide normative tools for those
>>>>>>>>>>>> parts
>>>>>
>>>>>>>>>>>> people expect the standard to - while giving flexiblity - but
>>
>>>>>>>>>>>> in
>>>>>
>>>>>>>>>>>> a
>>>>>>>
>>>>>>>>>>>> known and predictable and re-usable way - for those peices
>>>>>>>>>>>> they
>>>>
>>>>>>>>>>>> traditionally expect to have control over.
>>>>>>>>>>>>
>>>>>>>>>>>> The other normative sections are of course tailorable to
>>>>>>>>>>>> match
>>>
>>>>>>>>>>>> the
>>>>>>>
>>>>>>>>>>>> particular implementors vision and can include only those
>>>>>>>>>>>> feartures
>>>>>>>>
>>>>>>>>>>>> and parts that suit (it's just XML markup!).
>>>>>>>>>>>>
>>>>>>>>>>>> What I would expect is that the CAM template would be a
>>>>>>>>>>>> base-line
>>>>>>
>>>>>>>>>>>> one
>>>>>>>>>>>> - that implementors could then refine and extend to their own
>>
>>>>>>>>>>>> local
>>>>>>>>>>> needs.
>>>>>>>>>>>> This I think is inline with the notion of SBS - having a
>>>>>>>>>>>> jump-start
>>>>>>>>
>>>>>>>>>>>> kit that people can quickly use by default - and then refine
>>>>>>>>>>>> and
>>>>>
>>>>>>>>>>>> extend in practice.  Use of <include> is critical to provide
>>>>>>>>>>>> separation between such base-line templates and local
>>>>> extensions.
>>>>>>>>>>>> And then context is vital for people to understand the use
>>>>>>>>>>>> model
>>>>>
>>>>>>>>>>>> for
>>>>>>>>>
>>>>>>>>>>>> each
>>>>>>>>>>> template.
>>>>>>>>>>>>
>>>>>>>>>>>> DW
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> -------- Original Message --------
>>>>>>>>>>>> Subject: Re: RE: [ubl-dev] Datatype Methodology RE: [ubl-dev]
>>
>>>>>>>>>>>> SBS
>>>>>>
>>>>>>>>>>>> and Restricted Data Types
>>>>>>>>>>>> From: "Stephen Green" <stephen_green@bristol-city.gov.uk>
>>>>>>>>>>>> Date: Wed, May 10, 2006 10:35 am
>>>>>>>>>>>> To: <ubl-dev@lists.oasis-open.org>
>>>>>>>>>>>>
>>>>>>>>>>>> This makes me think UBL might be benefitted from CAM
>>>>>>>>>>>> templates
>>>
>>>>>>>>>>>> based
>>>>>>>>>
>>>>>>>>>>>> on a profile of CAM which covers the gaps. Maybe one profile
>>>>>>>>>>>> without
>>>>>>>>>
>>>>>>>>>>>> the 'context' bit (CCTS concept of it, not CL methodology
>>>>>>>>>>>> concept
>>>>>>
>>>>>>>>>>>> of
>>>>>>>>>
>>>>>>>>>>>> document context) and one with (so one doesn't have to
>>>>>>>>>>>> implement
>>>>>
>>>>>>>>>>>> a
>>>>>>>
>>>>>>>>>>>> full-scale CCTS context-sensitive system unless there is a
>>>>>>>>>>>> need
>>>>>>>> to).
>>>>>>>>>>>> There may be other bits of CAM not needed in such UBL
>>>>>>>>>>>> implementations too, or parts which UBL duplicates which
>>>>>>>>>>>> could
>>>
>>>>>>>>>>>> be
>>>>>>>>> profiled-out.
>>>>>>>>>>>>
>>>>>>>>>>>> Stephen Green
>>>>>>>>>>>>
>>>>>>>>>>>>>>> "David RR Webber (XML)" <david@drrw.info> 05/10/06 15:02
>>>>>>>>>>>>>>> PM
>>>>>>>>>>>>>>> >>>
>>>>>>>>>>>> Chin,
>>>>>>>>>>>>
>>>>>>>>>>>> I was trying to not get into nitty-gritty angle bracket stuff
>>>>>>>>>>>> -
>>>>
>>>>>>>>>>>> but
>>>>>>>>
>>>>>>>>>>>> here's a 20,000 foot view.
>>>>>>>>>>>>
>>>>>>>>>>>> The CAM template consists of 5 sections:
>>>>>>>>>>>>
>>>>>>>>>>>> <Header>
>>>>>>>>>>>> <AssemblyStructure>
>>>>>>>>>>>> <BusinessUseContext>
>>>>>>>>>>>> <DataValidations>
>>>>>>>>>>>> <ExternalMapping>
>>>>>>>>>>>>
>>>>>>>>>>>> We can equate the two <AssemblyStructure> and
>>>>>>>>>>>> <BusinessUseContext>
>>>>>>>
>>>>>>>>>>>> to the layering approach - where UBL provides the structure
>>>>>>>>>>>> definition - and the context section then exposes the delta
>>>>>>>>>>>> between
>>>>>>>>
>>>>>>>>>>>> the generic and
>>>>>>>>>>>
>>>>>>>>>>>> subset.  You can use <include> in the structure section to
>>>>>>>>>>>> reference
>>>>>>>>>
>>>>>>>>>>>> a
>>>>>>>>>>>
>>>>>>>>>>>> particular UBL sample.
>>>>>>>>>>>>
>>>>>>>>>>>> Basically if you look in the <BusinessUseContext> section and
>>
>>>>>>>>>>>> you
>>>>>>
>>>>>>>>>>>> see nothing - then you know people are using that included
>>>>>>>>>>>> UBL
>>>
>>>>>>>>>>>> sample
>>>>>>>>>>> as-is!
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Otherwise - the Header can come into play next - because that
>>
>>>>>>>>>>>> is
>>>>>
>>>>>>>>>>>> where
>>>>>>>>>>>
>>>>>>>>>>>> you define your global context variables that you might need
>>>>>>>>>>>> -
>>>
>>>>>>>>>>>> for
>>>>>>>
>>>>>>>>>>>> example boolean $export_order.
>>>>>>>>>>>>
>>>>>>>>>>>> So - in the context section you can have default rules - I
>>>>>>>>>>>> would
>>>>>
>>>>>>>>>>>> expect you to have these normally - as these apply to all
>>>>>>>>>>>> context
>>>>>>
>>>>>>>>>>>> instances and use - these are identified in the XML by -
>>>>>>>>>>>>
>>>>>>>>>>>>  <Rules><default><context> <!-- default rules -->
>>>>>>>>>>>> </context>/default> ....
>>>>>>>>>>>>
>>>>>>>>>>>> After that - you have specific context rules - here is where
>>>>>>>>>>>> you
>>>>>
>>>>>>>>>>>> would
>>>>>>>>>>>
>>>>>>>>>>>> put the typical refinements and crosschecks (e.g. if
>>>>>>>>>>>> $export_order
>>>>>>>
>>>>>>>>>>>> then <export_manifest> required mandatory element, etc)
>>>>>>>>>>>> associated
>>>>>>>
>>>>>>>>>>>> with your use case - these can reference global $ variables -
>>
>>>>>>>>>>>> or
>>>>>
>>>>>>>>>>>> be
>>>>>>>>
>>>>>>>>>>>> value driven within the data stream - e.g. :
>>>>>>>>>>>>
>>>>>>>>>>>> <context
>>>>>>>>>>>>
>>>>> condition="PHS398_ResearchPlan:TypeOfApplication='Resubmission'">
>>>>>>>>>>>>   <constraint action="makeMandatory(//RR_SF424:FederalID)" />
>>>>>>>>>>>>   <constraint action="setLength(//RR_SF424:FederalID,15)" />
>>>>>>>>>>>> </context> </Rules>
>>>>>>>>>>>>
>>>>>>>>>>>> So you can see the deltas are explicitly called out and
>>>>>>>>>>>> labelled
>>>>>
>>>>>>>>>>>> by
>>>>>>>>
>>>>>>>>>>>> context - and you can find them quickly without having to
>>>>>>>>>>>> grope
>>>>
>>>>>>>>>>>> through the XML structure itself line-by-line.
>>>>>>>>>>>>
>>>>>>>>>>>> CAM also provides you with a library of 30+ functions - so
>>>>>>>>>>>> you
>>>
>>>>>>>>>>>> can
>>>>>>>
>>>>>>>>>>>> manipulate the structure tree - pruning or selecting,
>>>>>>>>>>>> changing
>>>
>>>>>>>>>>>> from
>>>>>>>>
>>>>>>>>>>>> optional to mandatory, etc, rule driven.  I like to say that
>>>>>>>>>>>> XSD
>>>>>
>>>>>>>>>>>> schema provides you with a picture map of all the possible
>>>>>>>>>>>> structural varients that you may encounter - whereas CAM
>>>>>>>>>>>> restricts
>>>>>>>
>>>>>>>>>>>> this to the exact structure layout that you need for your
>>>>>>>>>>>> particular
>>>>>>>>>
>>>>>>>>>>>> context and
>>>>>>>>>>> usage.
>>>>>>>>>>>>
>>>>>>>>>>>> DW
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> -------- Original Message --------
>>>>>>>>>>>> Subject: RE: [ubl-dev] Datatype Methodology RE: [ubl-dev] SBS
>>
>>>>>>>>>>>> and
>>>>>>
>>>>>>>>>>>> Restricted Data Types
>>>>>>>>>>>> From: Chin Chee-Kai <cheekai@softml.net>
>>>>>>>>>>>> Date: Tue, May 09, 2006 9:21 pm
>>>>>>>>>>>> To: UBL-Dev <ubl-dev@lists.oasis-open.org>
>>>>>>>>>>>>
>>>>>>>>>>>> Hi David,
>>>>>>>>>>>>
>>>>>>>>>>>> Very much so, certain level of semantics processing that is
>>>>>>>>>>>> common
>>>>>>>
>>>>>>>>>>>> may
>>>>>>>>>>>
>>>>>>>>>>>> be extracted and stored away as what you call sub-component
>>>>>>>>> templates.
>>>>>>>>>>>>
>>>>>>>>>>>> You mentioned that CAM already handles the deltas by making
>>>>>>>>>>>> them
>>>>>
>>>>>>>>>>>> explicit so business users can readily inspect them.  It
>>>>>>>>>>>> sounds
>>>>
>>>>>>>>>>>> good, but in what manner does CAM store and manifest the
>>>> deltas?
>>>>>>>>>>>> Let's say we use the string length restriction from infinite
>>>>>>>>>>>> to
>>>>>>>>> 30-char
>>>>>>>>>>>> for example.  How does CAM indicate this delta?   (Sorry for
>>>>>>> asking
>>>>>>>>>>>> something so simple relative to CAM as I haven't much
>>>>>>>>>>>> exposure
>>>>> to
>>>>>>>>>>>> CAM yet).   If he way CAM does it is usable, there may be
>>>>>>> something
>>>>>>>>>>>> which UBL customisation could incorporate.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Best Regards,
>>>>>>>>>>>> Chin Chee-Kai
>>>>>>>>>>>> SoftML
>>>>>>>>>>>> Tel: +65-6820-2979
>>>>>>>>>>>> Fax: +65-6820-2979
>>>>>>>>>>>> Email: cheekai@SoftML.Net
>>>>>>>>>>>> http://SoftML.Net/
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Tue, 9 May 2006, David RR Webber (XML) wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>> Chin,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> ...
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Another tool here is <include> statements.  Where a
>>>>>>>>>>>>>> template
>>>
>>>>>>>>>>>>>> fragment is created that handles default processing of
>>>>>>>>>>>>>> common
>>>>
>>>>>>>>>>>>>> blocks
>>>>>>>>>>>
>>>>>>>>>>>>>> of XML content (address is an obvious one).  Being able to
>>>>>>>>>>>>>> create
>>>>>>>>
>>>>>>>>>>>>>> sub-components templates - breaking the overall processing
>>>>>>>>>>>>>> down
>>>>>>
>>>>>>>>>>>>>> into
>>>>>>>>>>>
>>>>>>>>>>>>>> smaller more manageable chunks is another notion that helps
>>
>>>>>>>>>>>>>> to
>>>>>
>>>>>>>>>>>>>> implement concepts such as SBS.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> DW
>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> -------------------------------------------------------------
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> - This publicly archived list supports open discussion on
>>>>>>>>>>>> implementing the UBL OASIS Standard. To minimize spam in the
>>>>>>>>>>>> archives, you must subscribe before posting.
>>>>>>>>>>>>
>>>>>>>>>>>> [Un]Subscribe/change address:
>>>>>>>>>>>> http://www.oasis-open.org/mlmanage/
>>>>>>>>>>>> Alternately, using email:
>>>>>>>>>>>> list-[un]subscribe@lists.oasis-open.org
>>>>>>>>>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>>>>>>>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>>>>>>>>>> List Guidelines:
>>>>>>>>>>>> http://www.oasis-open.org/maillists/guidelines.php
>>>>>>>>>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> -------------------------------------------------------------
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> - This publicly archived list supports open discussion on
>>>>>>>>>>>> implementing the UBL OASIS Standard. To minimize spam in the
>>>>>>>>>>>> archives, you must subscribe before posting.
>>>>>>>>>>>>
>>>>>>>>>>>> [Un]Subscribe/change address:
>>>>>>>>>>>> http://www.oasis-open.org/mlmanage/
>>>>>>>>>>>> Alternately, using email:
>>>>>>>>>>>> list-[un]subscribe@lists.oasis-open.org
>>>>>>>>>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>>>>>>>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>>>>>>>>>> List Guidelines:
>>>>>>>>>>>> http://www.oasis-open.org/maillists/guidelines.php
>>>>>>>>>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> -------------------------------------------------------------
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> - This publicly archived list supports open discussion on
>>>>>>>>>>>> implementing the UBL OASIS Standard. To minimize spam in the
>>>>>>>>>>>> archives, you must subscribe before posting.
>>>>>>>>>>>>
>>>>>>>>>>>> [Un]Subscribe/change address:
>>>>>>>>>>>> http://www.oasis-open.org/mlmanage/
>>>>>>>>>>>> Alternately, using email:
>>>>>>>>>>>> list-[un]subscribe@lists.oasis-open.org
>>>>>>>>>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>>>>>>>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>>>>>>>>>> List Guidelines:
>>>>>>>>>>>> http://www.oasis-open.org/maillists/guidelines.php
>>>>>>>>>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> -------------------------------------------------------------
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> - This publicly archived list supports open discussion on
>>>>>>>>>>>> implementing the UBL OASIS Standard. To minimize spam in the
>>>>>>>>>>>> archives, you must subscribe before posting.
>>>>>>>>>>>>
>>>>>>>>>>>> [Un]Subscribe/change address:
>>>>>>>>>>>> http://www.oasis-open.org/mlmanage/
>>>>>>>>>>>> Alternately, using email:
>>>>>>>>>>>> list-[un]subscribe@lists.oasis-open.org
>>>>>>>>>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>>>>>>>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>>>>>>>>>> List Guidelines:
>>>>>>>>>>>> http://www.oasis-open.org/maillists/guidelines.php
>>>>>>>>>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>>>>>>>>>
>>>>>>>>>>>> -------------------------------------------------------------
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> - This publicly archived list supports open discussion on
>>>>>>>>>>>> implementing the UBL OASIS Standard. To minimize spam in the
>>>>>>>>>>>> archives, you must subscribe before posting.
>>>>>>>>>>>>
>>>>>>>>>>>> [Un]Subscribe/change address:
>>>>>>>>>>>> http://www.oasis-open.org/mlmanage/
>>>>>>>>>>>> Alternately, using email:
>>>>>>>>>>>> list-[un]subscribe@lists.oasis-open.org
>>>>>>>>>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>>>>>>>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>>>>>>>>>> List Guidelines:
>>>>>>>>>>>> http://www.oasis-open.org/maillists/guidelines.php
>>>>>>>>>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>>>>>>>>>
>>>>>>>>>>>> -------------------------------------------------------------
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> -
>>>>>>>>>>>> - This publicly archived list supports open discussion on
>>>>>>>>>>>> implementing the UBL OASIS Standard. To minimize spam in the
>>>>>>>>>>>> archives, you must subscribe before posting.
>>>>>>>>>>>>
>>>>>>>>>>>> [Un]Subscribe/change address:
>>>>>>>>>>>> http://www.oasis-open.org/mlmanage/
>>>>>>>>>>>> Alternately, using email:
>>>>>>>>>>>> list-[un]subscribe@lists.oasis-open.org
>>>>>>>>>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>>>>>>>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>>>>>>>>>> List Guidelines:
>>>>>>>>>>>> http://www.oasis-open.org/maillists/guidelines.php
>>>>>>>>>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --------------------------------------------------------------
>>>>>>>>>>> -
>>>>>>>>>>> -
>>>>>>>>>>> -
>>>>>>>>>>> -
>>>>>>>>>>> -
>>>>>>>>>>> -
>>>>>>>>>>> - This publicly archived list supports open discussion on
>>>>>>>>>>> implementing the UBL OASIS Standard. To minimize spam in the
>>>>>>>>>>> archives, you must subscribe before posting.
>>>>>>>>>>>
>>>>>>>>>>> [Un]Subscribe/change address:
>>>>>>>>>>> http://www.oasis-open.org/mlmanage/
>>>>>>>>>>> Alternately, using email:
>>>>>>>>>>> list-[un]subscribe@lists.oasis-open.org
>>>>>>>>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>>>>>>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>>>>>>>>> List Guidelines:
>>>>>>>>>>> http://www.oasis-open.org/maillists/guidelines.php
>>>>>>>>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ---------------------------------------------------------------
>>>>>>>>>> -
>>>>>>>>>> -
>>>>>>>>>> -
>>>>>>>>>> -
>>>>>>>>>> -
>>>>>>>>>> - This publicly archived list supports open discussion on
>>>>>>>>>> implementing the UBL OASIS Standard. To minimize spam in the
>>>>>>>>>> archives, you must subscribe before posting.
>>>>>>>>>>
>>>>>>>>>> [Un]Subscribe/change address:
>>>>>>>>>> http://www.oasis-open.org/mlmanage/
>>>>>>>>>> Alternately, using email:
>>>>>>>>>> list-[un]subscribe@lists.oasis-open.org
>>>>>>>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>>>>>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>>>>>>>> List Guidelines:
>>>>>>>>>> http://www.oasis-open.org/maillists/guidelines.php
>>>>>>>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------
>>>>>>>>> -
>>>>>>>>> -
>>>>>>>>> -
>>>>>>>>> -
>>>>>>>>> - This publicly archived list supports open discussion on
>>>>>>>>> implementing the UBL OASIS Standard. To minimize spam in the
>>>>>>>>> archives, you must subscribe before posting.
>>>>>>>>>
>>>>>>>>> [Un]Subscribe/change address:
>>>>>>>>> http://www.oasis-open.org/mlmanage/
>>>>>>>>> Alternately, using email:
>>>>>>>>> list-[un]subscribe@lists.oasis-open.org
>>>>>>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>>>>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>>>>>>> List Guidelines:
>>>>>>>>> http://www.oasis-open.org/maillists/guidelines.php
>>>>>>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --------------------------------------------------------------------
>>>>> - This publicly archived list supports open discussion on
>>>>> implementing the UBL OASIS Standard. To minimize spam in the
>>>>> archives, you must subscribe before posting.
>>>>>
>>>>> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
>>>>> Alternately, using email: list-[un]subscribe@lists.oasis-open.org
>>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>>> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> This publicly archived list supports open discussion on implementing
>>>> the UBL OASIS Standard. To minimize spam in the archives, you must
>>>> subscribe before posting.
>>>>
>>>> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
>>>> Alternately, using email: list-[un]subscribe@lists.oasis-open.org
>>>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>>>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>>>> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>>>> Join OASIS: http://www.oasis-open.org/join/
>>>>
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> This publicly archived list supports open discussion on implementing 
>> the UBL OASIS Standard. To minimize spam in the
>> archives, you must subscribe before posting.
>>
>> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
>> Alternately, using email: list-[un]subscribe@lists.oasis-open.org
>> List archives: http://lists.oasis-open.org/archives/ubl-dev/
>> Committee homepage: http://www.oasis-open.org/committees/ubl/
>> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>> Join OASIS: http://www.oasis-open.org/join/
>>
>>
>
>
>
>
> ---------------------------------------------------------------------
> This publicly archived list supports open discussion on implementing 
> the UBL OASIS Standard. To minimize spam in the
> archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Alternately, using email: list-[un]subscribe@lists.oasis-open.org
> List archives: http://lists.oasis-open.org/archives/ubl-dev/
> Committee homepage: http://www.oasis-open.org/committees/ubl/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
> Join OASIS: http://www.oasis-open.org/join/
>
>





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]