[Home] [By Thread] [By Date] [Recent Entries]


Sean McGrath wrote:

> Can anybody point me to a way of expressing an open content model with 
> RelaxNG?
> 
> I.e. no restictions on contents of element Foo other than that the 
> content of Foo is well formed. A bit like ANY is XML 1.0 but without

> the restriction of having to declare all element types.


No problem: you just need to say what you want.  Such an element
has a content model consisting of:

	1) any number of attributes with text content and
	2) any number of sub-elements with model ANY interleaved with
	3) arbitrary text.

In NX syntax that would be:

ANY =   attribute * {text}* &
         element * {ANY}* &
         text

to which we can add a concrete element for testing:

start = element catchbin {ANY}

which taken jointly translate to standard syntax thus:

<?xml version="1.0" encoding="ISO-8859-1"?>
<grammar xmlns="http://relaxng.org/ns/structure/0.9">
   <define name="ANY">
     <interleave>
       <zeroOrMore>
         <attribute>
           <anyName/>
           <text/>
         </attribute>
       </zeroOrMore>
       <zeroOrMore>
         <element>
           <anyName/>
           <ref name="ANY"/>
         </element>
       </zeroOrMore>
       <text/>
     </interleave>
   </define>
   <start>
     <element name="catchbin">
       <ref name="ANY"/>
     </element>
   </start>
</grammar>

-- 
Not to perambulate             || John Cowan <jcowan@r...>
    the corridors               || http://www.reutershealth.com
during the hours of repose     || http://www.ccil.org/~cowan
    in the boots of ascension.  \\ Sign in Austrian ski-resort hotel


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member