[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Problem designing complexType accepting a specified eleme
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@b...] Sent: jeudi, 11. mars 2004 22:20 To: Hess Yvan Cc: 'xml-dev@l...' Subject: Re: 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>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|