Hi Rick, Le vendredi 20 octobre 2006 à 18:00 +1000, Rick Jelliffe a écrit : > You might try > <xsd:all> > <xsd:element name="a">...</xsd:element> > <xsd:element name="b">...</xsd:element> > <xsd:element name="c">...</xsd:element> > <xsd:element name="d">...</xsd:element> > <xsd:any namespace="##any" processContents="skip" /> > </xsd:all> > > If that doesn't work (I presume it doesn't) No, it doesn't: xs:any isn't allowed within xs:all :) ... > you could try unfolding it > to give every > permutation. Or just do something like the following > > <xsd:choice maxOccurs="unbounded"> > <xsd:element name="a">...</xsd:element> > <xsd:element name="b">...</xsd:element> > <xsd:element name="c">...</xsd:element> > <xsd:element name="d">...</xsd:element> > <xsd:any namespace="##any" processContents="skip" /> > </xsd:choice> This is violating the UPS rule and doesn't work either... Instead of that, you need to use xs:any with processContents set to "lax" so that validation is applied only yo elements that are defined: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="EleParent"> <xs:complexType> <xs:sequence> <xs:any namespace="##any" processContents="lax" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="a"/> <xs:element name="b"/> <xs:element name="c"/> <xs:element name="d"/> </xs:schema> > then use a Schematron schema to enforce the single rule > > <sch:rule context="whatever"> > <sch:assert test="count(a)=1">There should be one a</sch:assert> > <sch:assert test="count(b)=1">There should be one b</sch:assert> > <sch:assert test="count(c)=1">There should be one c</sch:assert> > <sch:assert test="count(d)=1">There should be one d</sch:assert> > </sch:rule> This is still needed with the schema that I am proposing, and in addition, you might want to check that <EleParent/> isn't included within <EleParent/> (which is allowed by this schema) and write: <sch:report test="EleParent">EleParent shouldn't be included there!</sch:assert> Of course, all that becomes simpler if you only allow elements from foreign namespaces. Hope this helps. Eric -- GPG-PGP: 2A528005 Le premier annuaire des apiculteurs 100% XML! http://apiculteurs.info/ ------------------------------------------------------------------------ Eric van der Vlist http://xmlfr.org http://dyomedea.com (ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax (W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema ------------------------------------------------------------------------
Ceci est une partie de message=?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=