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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl message

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


Subject: Question from Danish Government


Folks,

Late June the questions below was posted to the UBL-dev list. They are asking if they can get answer during next weeks meeting. Comments?

Best Regards

Stig Korsgaard
M.Sc.E Standardisation Manager
Tel: 	+45 3370 1083
Cell: 	+45 2725 9083
Mail: 	stk@finansraadet.dk

Danish Bankers Association
Amaliegade 7
DK-1256 Copenhagen K
Tel:	3370 1000
Fax:	3393 0260
mail@finansraadet.dk
www.finansraadet.dk

	Creating a UBL compliant Context
	
	

	Hey UBL-DEV
	
	Please excuse me, if this has been answered before and then please direct me
	to that answer.
	
	We are creating a Danish Context of UBL 1.0, just as we did on 0p7, but this
	time it shall be fully compliant. My collegue Rasmus Knippel (rak@itst.dk)
	has allready asked some questions, and to my knowledge not received an
	answer yet, this is a follow up on his questions since we need answers to
	finish out work and go for a public hearing in Denmark.
	
	Questions by my collegue Rasmus Knippel:
	<http://lists.oasis-open.org/archives/ubl-comment/200406/msg00002.html>
	
	My question is regarding XML Schema derivation of complexType/complexContent
	on elements of complexType/complexContent. I've searched through the
	archives, and not been able to find an answer to my question, the closest is
	this mail by Eduardo Gutentag, that tries to clarify the meening af the
	Context Document:
	<http://www.oasis-open.org/archives/ubl-cmsc/200401/msg00001.html>
	
	<quote>
	If the user wishes to require the use of the derived type, blocking the
	possibility of using the original type in an instance, a new derived type
	must be created from the Order type in the following manner: first derive
	by restriction, eliminating the element referring to ubl:PartyType from
	the myns:MyOrderType, then derive by extension adding an element that refers
	to
	myns:MyPartyType.
	</quote>
	
	Now finally my question: How should we create a UBL compliant version for
	Danish Context, where we want to enforce the use of our derived types? Using
	xsi:types is not acceptable, since it relies on sort of late binding and we
	want explicit schemas for our version, to be used in development. The
	suggestion by Eduardo Gutentag, to first eliminate the ubl:party and then
	add da:party, seems quite contrary to the hole idea of derivation, which
	leaves me with creating my Party element based on the ubl:Party element
	using substitutionGroup - is that the way og a way to go??
	
	I've provided a simple example below, that includes this problem:
	
	
	
	
	First a "UBL" version:
	<?xml version="1.0" encoding="UTF-8"?>
	<xs:schema targetNamespace=" <http://rep.oio.dk/ubl>"
	xmlns:ubl=" <http://rep.oio.dk/ubl>"
	xmlns:xs=" <http://www.w3.org/2001/XMLSchema>" elementFormDefault="qualified"
	attributeFormDefault="unqualified">
	
	   <xs:element name="c1" type="xs:string"/>
	   <xs:element name="c2" type="xs:string"/>
	   <xs:element name="c3" type="xs:string"/>
	
	   <xs:complexType name="PartyType">
	      <xs:sequence>
	         <xs:element ref="ubl:c1"/>
	         <xs:element ref="ubl:c2" minOccurs="0"/>
	         <xs:element ref="ubl:c3"/>
	      </xs:sequence>
	   </xs:complexType>
	
	   <xs:element name="Party" type="ubl:PartyType"/>
	
	   <xs:complexType name="OrderType">
	      <xs:sequence>
	         <xs:element ref="ubl:Party"/>
	      </xs:sequence>
	   </xs:complexType>
	
	   <xs:element name="Order" type="ubl:OrderType">
	      <xs:annotation>
	         <xs:documentation>Comment describing your root
	element</xs:documentation>
	      </xs:annotation>
	   </xs:element>
	
	</xs:schema>
	
	
	
	
	Then a danish context version:
	<?xml version="1.0" encoding="UTF-8"?>
	<xs:schema targetNamespace=" <http://rep.oio.dk/da>"
	xmlns:ubl=" <http://rep.oio.dk/ubl>" xmlns:da=" <http://rep.oio.dk/da>"
	xmlns:xs=" <http://www.w3.org/2001/XMLSchema>" elementFormDefault="qualified"
	attributeFormDefault="unqualified">
	
	   <xs:import namespace=" <http://rep.oio.dk/ubl>"
	schemaLocation="ubl-version.xsd"/>
	
	   <xs:element name="b1" type="xs:string"/>
	   <xs:element name="b2" type="xs:string"/>
	   <xs:element name="a1" type="xs:string"/>
	
	   <xs:complexType name="RestrictedPartyType" abstract="true">
	      <xs:complexContent>
	         <xs:restriction base="ubl:PartyType">
	            <xs:sequence>
	               <xs:element ref="ubl:c1"/>
	               <xs:element ref="ubl:c3"/>
	            </xs:sequence>
	         </xs:restriction>
	      </xs:complexContent>
	   </xs:complexType>
	
	   <xs:complexType name="PartyType">
	      <xs:complexContent>
	         <xs:extension base="da:RestrictedPartyType">
	            <xs:sequence>
	               <xs:element ref="da:b1"/>
	               <xs:element ref="da:b2"/>
	            </xs:sequence>
	         </xs:extension>
	      </xs:complexContent>
	   </xs:complexType>
	
	   <!--
	        Here goes the substitutionGroup and the
	complexType/complexContent/restriction
	
	   -->
	   <xs:element name="Party" type="da:PartyType"
	substitutionGroup="ubl:Party"/>
	
	   <xs:complexType name="RestrictedOrderType">
	      <xs:complexContent>
	         <xs:restriction base="ubl:OrderType">
	            <xs:sequence>
	               <xs:element ref="da:Party"/>
	            </xs:sequence>
	         </xs:restriction>
	      </xs:complexContent>
	   </xs:complexType>
	
	   <xs:complexType name="OrderType">
	      <xs:complexContent>
	         <xs:extension base="da:RestrictedOrderType">
	            <xs:sequence>
	               <xs:element ref="da:a1"/>
	            </xs:sequence>
	         </xs:extension>
	      </xs:complexContent>
	   </xs:complexType>
	
	   <xs:element name="Order" type="da:OrderType" />
	</xs:schema>
	
	
	
	Best regards
	Brian Nielsen
	
	
	
	
	---
	
	Brian Nielsen
	IT-arkitekt
	IT Strategisk Kontor
	bni@itst.dk < <mailto:bni@itst.dk>>
	33 379 134 (direkte)
	25 67 07 45 (mobil)
	IT og Telestyrelsen
	National IT and Telecom Agency
	Holsteinsgade 63
	DK-2100 København Ø
	Telf. +45 35 45 00 00
	Fax. +45 35 45 00 10
	< <http://www.itst.dk>>
	itst@itst.dk < <mailto:itst@itst.dk>>
	Besøgsadresse:
	Bredgade 40
	1260 København K
	




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