XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
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


"cmarchand@oxiane.com" <cmarchand@oxiane.com> schrieb am 10:08 Donnerstag, 9.März 2017:


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/




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS