- From: Tom Wason <wason@mindspring.com>
- Date: Mon, 27 Aug 2001 18:54:42 -0400
- To: "estee" <estee@isdn.net.il>, "Eddie Robertsson" <eddie@allette.com.au>
- Cc: <xmlschema-dev@w3.org>
Logically it would seem that you cannot do what you request: a random order of required elements mixed with unspecified (i.e., <any>) optional elements. This is because neither <choice> nor <sequence> may contain <all> and <all> may only contain an <element> or an <annotation>. Thomas D. Wason, Ph.D. Consultant e-Learning Architectures, Content & Meta-Data +1 919.839.8187 wason@mindspring.com http://www.twason.com 1421 Park Drive Raleigh, North Carolina 27605 USA < -----Original Message----- < From: xmlschema-dev-request@w3.org < [mailto:xmlschema-dev-request@w3.org]On Behalf Of estee < Sent: Monday, August 27, 2001 4:01 PM < To: Eddie Robertsson < Cc: xmlschema-dev@w3.org < Subject: RE: open schema < < < I hava some problems with the model you suggest : < - It requires different namespaces for elements i require < and elementss i < do not (ie all elements required must be in a different namespace) < - It does not work perfectly unless in a sequence (ie < ordered) it does not < work inside <all/> < - It only works for models in which all required elements < come first, after < which all "garbage" (non mandatory) elements apprear. < - It seems (by trial only) that the xml+schema model I have < tryed (written < below) passed validation (but should not have, since a <d> element is not < present < < I have tryed changing the parents minOccures to 2 < then, it requires mandatory elements before "garbage" elements (first o, < then d, and then any other) < < I hope you get the way i am thinking (I know it night be a bit bizaar) < However, what i want is simple: < I want to validate that a certain parent element contains < some mandatory < fields. I do not however care what else it might contain. < Additionally, I do not care what is the order of all the < elements in the < parent. (some "garbage" elements can occur mixed between < mandatory elements) < I do not even know the quantity of child elements I expect to occur < < Thank you very much for your replys < Glad to hear from you < Oded (estee@isdn.net.il) < < <?xml version="1.0" encoding="UTF-8"?> < <a xmlns:hey = "hey" < xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" < xsi:noNamespaceSchemaLocation="C:\Program Files\Altova\XML Spy < Suite\Template\choice.xsd"> < <o/> < <o/> < <hey:x/> < <hey:z/> < <hey:z/> < </a> < <?xml version="1.0" encoding="UTF-8"?> < <!--W3C Schema generated by XML Spy v4.0 beta 2 build Jul 26 2001 < (http://www.xmlspy.com)--> < <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" < elementFormDefault="qualified"> < <xs:element name="a"> < <xs:complexType> < <xs:choice maxOccurs="unbounded"> < <xs:element name="o" < type='xs:string' minOccurs='1'/> < <xs:element name="d" < type='xs:string' minOccurs='1'/> < <xs:any namespace = "hey"/> < </xs:choice> < </xs:complexType> < </xs:element> < </xs:schema> < < < -----Original Message----- < From: Eddie Robertsson [mailto:eddie@allette.com.au] < Sent: Monday, August 27, 2001 3:37 AM < To: estee < Cc: xmlschema-dev@w3.org < Subject: Re: open schema < < < Hi estee, < < < > Is there any possibility to define (in an xml schema) a type, < > containing only simple types, of which some are required, and all the < > others unknown.In other words: define a type in which i know what < > elements are supposed to be present, but do not know which "might" be < > present. eg:the following type must contain 'a', 'b', and 'c', but < > might also contain some other elements. It is also important to state < > that the order af appearance is of no siginificance. < > <letters> <a/> <hollat/> <c/> < > <club/> <b/> <smit/> <pliq/> </letters> I am < > searching for a solution in which all elements are of same namespaces. < < What you need is to include the xs:any [1] declaration in your content < model. The xs:any declaration is used when you want to include arbitrary < elements in your content model. It lets you control in which namespace < the elements should be defined (using the namespace attribute) and how < the validation should be performed (using the processContents < attribute). < In your example the declaration of letter would probably be something < like: < < <xs:complexType name="letterType"> < <xs:choice minOccurs="0" maxOccurs="unbounded"> < <xs:element name="a" type="xs:string"/> < <xs:element name="b" type="xs:string"/> < <xs:element name="c" type="xs:string"/> < <xs:any namespace="##targetNamespace" processContents="strict"/> < </xs:choice> < </xs:complexType> < < By setting namespace="##targetNamespace" you specify that all the < elements must come from the targetNamespace of your schema. < < Cheers, < /Eddie < < [1] http://www.w3.org/TR/xmlschema-0/#any < <
Received on Monday, 27 August 2001 18:56:53 UTC