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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] Problem designing complexType accepting a specified eleme

[ Lists Home | Date Index | Thread Index ]

You might accept making only the metadata and identifier elements have its
own namespace. Then you could put any of your main namespace's elements into
the "bag".

-tor

-----Original Message-----
From: Hess Yvan [mailto:yvan.hess@imtf.ch] 
Sent: Friday, March 12, 2004 10:29 AM
To: 'Chiusano Joseph'
Cc: 'xml-dev@lists.xml.org'
Subject: RE: [xml-dev] Problem designing complexType accepting a specified
element and allowing any others.

Thanks for your answer. The XML document for which I have to write the
schema have all the elements under the section metadata as illustrated in my
sample and should accept any others element from the same namespace or from
a other name space. I can not change this requierement. 

In general manner, I would like to define a kind of bag element ("metadata")
where the order of the elements is not important, that contains predefined
elements that must occurs with a given occurrences (min and max) and that
also accepts any king of others elements (same or others namespaces). I
don't know if a reach a limitation of the W3C recommendation, but from my
point of view this use case is a real concrete use case that should be
supported by W3C XML schema recommendation.

More idea how to implement it?

Yvan

-----Original Message-----
From: Chiusano Joseph [mailto:chiusano_joseph@bah.com]
Sent: jeudi, 11. mars 2004 22:20
To: Hess Yvan
Cc: 'xml-dev@lists.xml.org'
Subject: Re: [xml-dev] Problem designing complexType accepting a specified
element and allowing any others.


You are running into an issue called "non-determinism", because the schema
processor cannot discern - when a "choice" compositor is used - if an
element named "identifier" should be considered to be the "identifier"
element that is declared in the content model, or an element that is
supplied as a wildcard (the xs:any element).

You have not provided a "namespace" attribute to the xs:any element -
therefore, an element in that place in an XML instance document conforming
to the schema to which that content model belongs (long sentence, I know but
trying to be precise) can be in any namespace.

If you were to add a "namespace" attribute to the xs:any element that is
more "strict" with the namespace - e.g. "##other", which means that the
element must be from a namespace other than the target namespace of the
schema - then this will solve the problem because the schema processor will
be able to handle such an element in a deterministic manner.

Hope that helps.

Kind Regards,
Joe Chiusano
Booz | Allen | Hamilton
Strategy and Technology Consultants to the World

Hess Yvan wrote:
> 
> I want to design a complexType named "metadata" that forces the 
> presence
of
> an "identifier" element and allows any others elements not predefined.
> Moreover the "identifier" and the others elements can appear in any 
> order into the "metadata" element. Here are examples of valid xml
instances:
> 
> <metadata xmlns="http://www.imtf.com/test";>
>   <identifier>urn:hsc:1234</identifier>
>   <name>Hess Yvan</name>
> </metadata>
> 
> <metadata xmlns="http://www.imtf.com/test";>
>   <subject>This is the subject</subject>
>   <identifier>urn:hsc:1234</identifier>
>   <title>This is the title</title>
> </metadata>
> 
> I implemented the following xml schema complexType but it doesn't work:
> 
> <xs:element name="metadata">
>   <xs:complexType>
>     <xs:choice minOccurs="0" maxOccurs="unbounded">
>       <xs:element name="identifier" type="xs:string"/>
>       <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
>     </xs:choice>
>   </xs:complexType>
> </xs:element>
> 
> I get the following error with Xerces validation and a similar one 
> with
XSV
> (it seems I violate the "Unique Particle Attribution").
> 
> [Error] choice.xsd:4:23: cos-nonambig:
"http://www.imtf.com/test":identifier
> and
>  WC[##any] (or elements from their substitution group) violate "Unique 
> Particle Attribution". During validation against this schema, 
> ambiguity would be created for those two particles.
> choice.xml: 571 ms (3 elems, 1 attrs, 0 spaces, 30 chars)
> 
> If I change my xml schema using sequence instead of choice as follow:
> 
> <xs:element name="metadata">
>   <xs:complexType>
>     <xs:sequence>
>       <xs:element name="identifier" type="xs:string"/>
>       <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
>     </xs:sequence>
>   </xs:complexType>
> </xs:element>
> 
> it works but in this case the "identifier" element must be at the 
> FIRST position and I don't want that !!!
> 
> Please can you help me to solve this problem. I have no idea how to 
> solve
it
> !!!
> 
> Regards. Yvan Hess
> 
> --------------------------------------------------------
> XML file:
> 
> <?xml version="1.0" encoding="UTF-8"?> <metadata 
> xmlns="http://www.imtf.com/test";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://www.imtf.com/test choice.xsd">
>    <identifier>urn:hsc:1234</identifier>
>    <name>Hess Yvan</name>
> </metadata>
> 
> --------------------------------------------------------
> XML schema file:
> 
> <?xml version="1.0" encoding="UTF-8"?> <xs:schema 
> targetNamespace="http://www.imtf.com/test";
> xmlns="http://www.imtf.com/test";
xmlns:xs="http://www.w3.org/2001/XMLSchema";
> elementFormDefault="qualified" attributeFormDefault="unqualified">
>    <xs:element name="metadata">
>       <xs:complexType>
>          <xs:choice minOccurs="0" maxOccurs="unbounded">
>             <xs:element name="identifier" type="xs:string"/>
>             <xs:any processContents="lax" minOccurs="0"
> maxOccurs="unbounded"/>
>          </xs:choice>
>       </xs:complexType>
>    </xs:element>
> </xs:schema>
> 
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an 
> initiative of OASIS <http://www.oasis-open.org>
> 
> The list archives are at http://lists.xml.org/archives/xml-dev/
> 
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://www.oasis-open.org/mlmanage/index.php>

-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an initiative
of OASIS <http://www.oasis-open.org>

The list archives are at http://lists.xml.org/archives/xml-dev/

To subscribe or unsubscribe from this list use the subscription
manager: <http://www.oasis-open.org/mlmanage/index.php>

-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an initiative
of OASIS <http://www.oasis-open.org>

The list archives are at http://lists.xml.org/archives/xml-dev/

To subscribe or unsubscribe from this list use the subscription
manager: <http://www.oasis-open.org/mlmanage/index.php>





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS