[
Lists Home |
Date Index |
Thread Index
]
Hi Gustaf,
> A short question about RelaxNG: is it possible to have partial
> validation? I mean something like:
>
> <element name="whatever">
> <any/> <!-- any well-formed XML markup -->
> </element>
>
> I've searched through the spec and tutorial, but can't find anything
> about this. Is there any particular reason why RelaxNG should *not*
> have this feature?
RELAX NG does support this feature, but you have to construct it
yourself, using name patterns. John used the non-XML syntax for this
in the XLink schema that he just posted:
anyElem = element * {anyAttr*, (anyElem | text)*}
anyAttr = attribute * {text}
In XML syntax, the * is an anyName element, appearing immediately
within the element or attribute element, so the XML-syntax equivalent
of John's definitions is as follows:
<define name="anyElem">
<element>
<anyName />
<zeroOrMore>
<ref name="anyAttr" />
</zeroOrMore>
<zeroOrMore>
<choice>
<ref name="anyElem" />
<text />
</choice>
</zeroOrMore>
</element>
</define>
<define name="anyAttr">
<attribute>
<anyName />
<text />
</attribute>
</define>
You could then do:
<element name="whatever">
<ref name="anyElem" />
</element>
There are other name classes you can use as well, for example to
constrain the names by namespace or explicitly give a list of possible
names. See Section 11 (Name Classes) of the tutorial for details.
http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html#IDAFLZR
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
|