W3C home > Mailing lists > Public > xmlschema-dev@w3.org > May 2006

Question of reports of non-determinism

From: G. Ken Holman <gkholman@CraneSoftwrights.com>
Date: Thu, 18 May 2006 09:35:26 +0200
Message-Id: <7.0.1.0.2.20060518085551.02bc6c98@CraneSoftwrights.com>
To: xmlschema-dev@w3.org

Hello all,

Below is transcript of an extended example from our work in UBL:

   http://www.oasis-open.org/archives/ubl/200604/msg00013.html

I've been using xjparse invoking Xerces in order to test examples and 
experiments for the TC.

In the example below, I have modeled an extension point named 
LineItemExtension into which I wish to allow child elements from any 
other namespace and from no namespace.

I am informed that some tools (not Xerces below) report that ##other 
conflicts with ##local in that it is non-deterministic.  Yet if I 
take out ##local the example below fails in Xerces because I've 
included an element in no namespace, so Xerces is implementing "other 
namespace" as "other non-null namespace", while the other tools are 
implementing "other namespace" as "other namespace including no namespace".

Does ##other imply ##local or does ##other require there be a target 
namespace that is different in the particle?  If ##other implies 
##local then Xerces is wrong ... otherwise these other tools are wrong.

I'm looking to advise the TC correctly in this matter, so any help 
would be greatly appreciated.

Thanks!

. . . . . . . . . Ken

t:\fraser>type exublorder2.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified" 
targetNamespace="urn:oasis:names:draft:ubl:schema:xsd:Order-2" 
xmlns:u="urn:oasis:names:draft:ubl:schema:xsd:Order-2">
   <xs:element name="Order">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="u:OrderNumber"/>
         <xs:element maxOccurs="unbounded" ref="u:LineItem"/>
         <xs:element ref="u:TotalAmount"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="OrderNumber" type="xs:string"/>
   <xs:element name="LineItem">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="u:Description"/>
         <xs:element ref="u:PriceAmount"/>
         <xs:element minOccurs="0" ref="u:LineItemExtension"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="Description" type="xs:string"/>
   <xs:element name="PriceAmount" type="xs:string"/>
   <xs:element name="LineItemExtension" type="u:any-non-UBL"/>
   <xs:element name="TotalAmount" type="xs:string"/>
   <xs:complexType name="any-non-UBL">
     <xs:choice minOccurs="0" maxOccurs="unbounded">
       <xs:any namespace="##other" processContents="skip" 
minOccurs="0" maxOccurs="unbounded"/>
       <xs:any namespace="##local" processContents="skip" 
minOccurs="0" maxOccurs="unbounded"/>
     </xs:choice>
   </xs:complexType>
</xs:schema>

t:\fraser>type exaeroorder2.xml
<?xml version="1.0" encoding="utf-8"?>
<Order xmlns="urn:oasis:names:draft:ubl:schema:xsd:Order-2"
        xmlns:a="urn:x-aerospace:ubl:lineitem">
   <OrderNumber>123</OrderNumber>
   <LineItem>
     <Description>747 Repair Kit</Description>
     <PriceAmount>1200000.54</PriceAmount>
     <LineItemExtension>
       <a:LineItemDetail>
         <a:Part>
           <a:Description>Starboard wing</a:Description>
           <a:Amount>600000.00</a:Amount>
         </a:Part>
         <a:Part>
           <a:Description>Port wing</a:Description>
           <a:Amount>600000.00</a:Amount>
         </a:Part>
         <a:Part>
           <a:Description>Bolt</a:Description>
           <a:Quantity>2</a:Quantity>
           <a:Amount>.27</a:Amount>
         </a:Part>
       </a:LineItemDetail>
     </LineItemExtension>
   </LineItem>
   <LineItem>
     <Description>DC3 Repair Kit</Description>
     <PriceAmount>37.25</PriceAmount>
     <LineItemExtension>
       <a:LineItemDetail>
         <a:Part>
           <a:Description>Rubber band</a:Description>
           <a:Amount>37.25</a:Amount>
         </a:Part>
       </a:LineItemDetail>
       <hello xmlns="">
         <world/>
       </hello>
     </LineItemExtension>
   </LineItem>
   <TotalAmount>1200037.79</TotalAmount>
</Order>
t:\fraser>xjparse -S exublorder2.xsd exaeroorder2.xml
No validation errors.

--
Registration open for XSLT/XSL-FO training: Wash.,DC 2006-06-12/16
Also for XSL-FO/XSLT training:    Minneapolis, MN 2006-07-31/08-04
Also for XML/XSLT/XSL-FO/UBL training: Varo,Denmark 06-09-25/10-06
World-wide corporate, govt. & user group UBL, XSL, & XML training.
G. Ken Holman                 mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/x/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05  http://www.CraneSoftwrights.com/x/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal
Received on Thursday, 18 May 2006 07:36:53 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:54 GMT