- From: Mik Lernout <mik@futurestreet.org>
- Date: Thu, 11 Mar 2004 23:11:31 +0100
- Cc: xmlschema-dev@w3.org
<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 Thursday, 11 March 2004 17:12:34 UTC