[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A non-XML syntax for RELAX NG
- From: David Rosenborg <david.rosenborg@pantor.com>
- To: XML Developers' List <xml-dev@lists.xml.org>
- Date: Fri, 17 Aug 2001 10:34:21 +0200
James Clark wrote:
> I've developed an experimental non-XML syntax for RELAX NG. See
>
> http://www.thaiopensource.com/relaxng/nonxml/
>
This is nice! However, I'd like to propose some changes. I think the often used keywords attribute
and element give too little visual guidance. Instead I propose the following syntax which
is even less verbose but still more readable in my opinion:
Use "<" nameClass ">" instead of "element" nameClass
Use "@" nameClass instead of "attribute" nameClass
Some converted examples from your example schema:
pattern =
<element> { (nameQName | nameClass), (common & pattern+) }
| <attribute> { (nameQName | nameClass), (common & pattern?) }
| <group|interleave|choice|optional |zeroOrMore|oneOrMore|list|mixed>
{ common & pattern+ }
| <ref|parentRef> { nameNCName, common }
...
nameQName = @name { xsd:QName }
nameNCName = @name { xsd:NCName }
...
foreignElement = <* - rng:*> { (anyAttribute | text | anyElement)* }
foreignAttribute = @ * - (rng:*|local:*) { text }
anyElement = <*> { (anyAttribute | text | anyElement)* }
anyAttribute = @* { text }
Cheers,
</David>
David Rosenborg
Pantor Engineering AB