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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl-ndrsc message

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


Subject: [ubl-ndrsc] Derivation of complexTypes with attributes andelement-values


Hello Bill,

I checked all possibilities of supplementary restrictions of BCCs now. A found a solution without changes our defined structure of the CCTs.

I will show you on the following example.

The following complexType represents the BCC "CompactAttribute". It includes all information in it. It bases on the built-in datatype "xsd:decimal" and have included the additional attribute "currencyId" which represents the supplementary component "Currency. Identification" and the attribute group "cct:commonAttributes" with all global defined attributes.

	<xsd:complexType name="CompactAttribute">
		<xsd:simpleContent>
			<xsd:extension base="xsd:decimal">
				<xsd:attribute name="currencyId" type="xsd:token" use="required"/>
				<xsd:attributeGroup ref="cct:commonAttributes"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

With that construct is the tuple "complexType/simpleType" (like the following one) not necessary anymore.

	<xsd:simpleType name="AmountContent" id="000106">
		<xsd:restriction base="xsd:decimal"/>
	</xsd:simpleType>
	<xsd:complexType name="AmountType" id="000105">
		<xsd:simpleContent>
			<xsd:extension base="cct:AmountContent"/>
		</xsd:simpleContent>
	</xsd:complexType>

This will be an big advantage. Because you need only one construct for representing the complete BCC. But this construct will have another big advantage.

If you will restrict the content component or the supplementary components in another derived BBIE, you can do that without any copying of the complete structure. In the following example I restricted the length of the specific BBIE by the facets totalDigits and fractionDigits without influencing the BCC itself:

	<xsd:element name="CompactTaxAmountRestriction">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:restriction base="cct:CompactAttribute">
					<xsd:totalDigits value="10"/>
					<xsd:fractionDigits value="5"/>
				</xsd:restriction>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

If you would like to restrict the supplementary component "Currency. Identification" too. It will be possible now, without any difficult definitions. The following example shows this restriction:

	<xsd:element name="CompactTaxAmountRestriction">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:restriction base="cct:CompactAttribute">
					<xsd:totalDigits value="10"/>
					<xsd:fractionDigits value="5"/>
					<xsd:attribute name="currencyId">
						<xsd:simpleType>
							<xsd:restriction base="xsd:token">
								<xsd:length value="5"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
				</xsd:restriction>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

And, if you change anything inside of the BCC "CompactAttribute". It will impact all BBIE, which are derived from it, without any problems.

I guess, this solves my problem.

What do you think about it?

Kind regards,

	Gunther


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


Powered by eList eXpress LLC