OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Partial validation in RelaxNG?

[ 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/





 

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

Copyright 2001 XML.org. This site is hosted by OASIS