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:00:08 UTC