RE: Problem designing complexType accepting a specified element a nd a llowing any others

I also tried this solution but it still violates the "Unique Particle
Attribution". 

In general manner, I would like to define a king 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 (may be in version 1.1 or it
still exist a possibility to do it with 1.0).

More idea?

Yvan

-----Original Message-----
From: Mik Lernout [mailto:mik@futurestreet.org]
Sent: jeudi, 11. mars 2004 23:13
To: xmlschema-dev@w3.org
Cc: xmlschema-dev@w3.org
Subject: Re: Problem designing complexType accepting a specified element
a nd a llowing any others



<all> definitly does not allow for <any> children, it can only contain 
<element>'s. The only solution I could think of would look like this:

<xs:element name="metadata">
  <xs:complexType>
     <xs:sequence>
        <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="identifier" type="xs:string"/>
        <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:complexType>
</xs:element>

I have not tested this but am fairly confident that it should work... I 
have made the <any>'s 'lax', because it was in your original mail, but 
are you sure you want to do that? Making them 'skip' would speed up 
validation a lot...

Hope that helps,

Mik


Markus Seibold wrote:

>I don't know how <all> handles the <any> element??? I only know that
><all> allows instance documents to mix the element order.
>
>Sorry! 
>
>
>  
>
>>-----Original Message-----
>>From: xmlschema-dev-request@w3.org 
>>[mailto:xmlschema-dev-request@w3.org] On Behalf Of Hess Yvan
>>Sent: Donnerstag, 11. März 2004 22:54
>>To: 'Markus Seibold '
>>Cc: 'xmlschema-dev@w3.org '
>>Subject: RE: Problem designing complexType accepting a 
>>specified element a nd a llowing any others
>>
>>
>>
>>Do you mean I have to change the schema like that ?
>>
>><xs:element name="metadata">
>>  <xs:complexType>
>>     <xs:all>
>>        <xs:element name="identifier" type="xs:string"/>
>>        <xs:any processContents="lax"/>
>>      </xs:all>
>>   </xs:complexType>
>></xs:element>
>>
>>If yes, I can say that I get an error saying that the xml 
>>schema is not valid.
>>
>>Regards. Yvan
>>
>>-----Original Message-----
>>From: Markus Seibold
>>To: 'Hess Yvan'; xmlschema-dev@w3.org
>>Sent: 11.03.04 22:33
>>Subject: RE: Problem designing complexType accepting a 
>>specified element and
>>a 	llowing any others
>>
>>
>>Hi Yvan,
>>try <all> instead of <sequence>. This element allows the 
>>elements to appear in random order but element declarations 
>>within the all container cannot contain maxOccurs="unbounded" 
>>but only maxOccurs="1".
>>
>>Markus
>>
>>    
>>
>>>-----Original Message-----
>>>From: xmlschema-dev-request@w3.org
>>>[mailto:xmlschema-dev-request@w3.org] On Behalf Of Hess Yvan
>>>Sent: Donnerstag, 11. März 2004 20:45
>>>To: 'xmlschema-dev@w3.org'
>>>Subject: Problem designing complexType accepting a specified 
>>>element and a llowing any others
>>>
>>>
>>>
>>>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>
>>></metadata>
>>>
>>>I implemented the following xml schema 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 (I violated 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>
>>>
>>>
>>>
>>>
>>>      
>>>
>>    
>>
>
>.
>
>  
>

Received on Friday, 12 March 2004 02:59:30 UTC