[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: QNames
> I wonder whether this already hits 80-20. Since namespaces typically > correspond to information islands, elements of a namespace share one > top-level element or a sequence of such top-level elements. See my > rewrite of RSS in RELAX NG. Here's a rewrite of your rewrite using <div>. This completely avoids duplicate specification of the namespace URI. <!-- Rewrite in RELAX NG MURATA Makoto June 4, 2001 Modified to use div by James Clark --> <!-- Draft TREX Grammar for RSS 1.0 Leigh Dodds 10/1/2001 --> <grammar xmlns="http://relaxng.org/ns/struct/0.9"> <div namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <start> <element name="RDF"> <ref name="Channel" /> <optional> <ref name="Image" /> </optional> <oneOrMore> <ref name="Item" /> </oneOrMore> <optional> <ref name="Textinput" /> </optional> </element> </start> <define name="About"> <attribute name="about"/> </define> <define name="Resource"> <attribute name="resource"/> </define> <define name="Seq"> <element name="Seq"> <oneOrMore> <element name="li"> <attribute name="resource"/> <empty/> </element> </oneOrMore> </element> </define> </div> <div namespace="http://purl.org/rss/1.0/"> <define name="Channel"> <element name="channel"> <ref name="About"/> <interleave> <ref name="Title"/> <ref name="Link"/> <ref name="Description"/> <optional> <ref name="Image.ref"/> </optional> <ref name="Items" /> <optional> <ref name="Textinput.ref"/> </optional> </interleave> </element> </define> <define name="Image"> <element name="image"> <ref name="About"/> <interleave> <ref name="Title"/> <ref name="Url"/> <ref name="Link"/> </interleave> </element> </define> <define name="Image.ref"> <element name="image"> <ref name="Resource"/> <empty/> </element> </define> <define name="Item"> <element name="item"> <ref name="About"/> <interleave> <ref name="Title"/> <ref name="Link"/> <optional> <ref name="Description"/> </optional> </interleave> </element> </define> <define name="Items"> <element name="items"> <ref name="Seq"/> </element> </define> <define name="Textinput"> <element name="textinput"> <ref name="About"/> <interleave> <ref name="Title"/> <ref name="Description"/> <ref name="Name"/> <ref name="Link"/> </interleave> </element> </define> <define name="Textinput.ref"> <element name="textinput"> <ref name="Resource"/> </element> </define> <define name="Title"> <element name="title"> <anyString/> </element> </define> <define name="Url"> <element name="url"> <anyString/> </element> </define> <define name="Link"> <element name="link"> <anyString/> </element> </define> <define name="Description"> <element name="description"> <anyString/> </element> </define> <define name="Name"> <element name="name"> <anyString/> </element> </define> </div> </grammar>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC