Next in thread →
Next in month →
Re: [xml-dev] XML Schema - How to define any element of type Foe
Christophe, if you have to stick to XSD 1.0, a weak and very limited workaround for your problem could be the use of a substitution group:
(a) Introduce a global element declaration with an arbitrary name (e.g. "FoeElem") and type "Foe"
(b) For each element which you would like to allow at the critical place in type "parent": create a global element declaration with type "Foe" (or a type derived from it) and make it a member of substitutionGroup "FoeElem" (substitutionGroup="FoeElem")
(c) In your type "parent" type replace <xs:any type="Foe"/> by <xs:element ref="FoeElem"/>
It's a far cry from a wildcard constrained to have type Foe, as you have to forsee all allowed element names at XSD design time; but you can at least create a set of elements allowed to appear at this place. Note the difference to a choice: a choice is closed, but using a substitution group, additional elements can be allowed later without changing type "parent": by just adding more element declarations declaring this substitution group. Later addition might also be achieved by including or importing further XSDs providing the additional element declarations.
Cheers,
Hans
Hello,
I have a complexType definition, Foe.
In another complexType, I want to allow any child element, but require
that each child element is valid against Foe definition.
Something like :
<xs:complexType name="Foe">
<xs:attribute name="start" type="xs:positiveInteger" use="required"/>
<xs:attribute name="end" type="xs:positiveInteger" use="required"/>
<xs:assert test="@end ge @start">
</xs:complexType>
<xs:complexType name="parent">
<xs:sequence>
<xs:any type="Foe"/>
</xs:sequence>
</xs:complexType>
How can I do this ?
Thanks,
Christophe
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
Or unsubscribe: [email protected]
subscribe: [email protected]
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
Next in thread →
Next in month →