blob: ef731b145c5948c4775f27e6e65d726e8ecbf14a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
<!-- ===================================================================
Apache Cocoon Book RELAX NG grammar (Version 0.1)
PURPOSE:
DRAFT RELAX NG grammar for the Cocoon book.xml configuration files.
NOTES:
AUTHORS:
David Crossley <crossley@apache.org>
FIXME:
-
CHANGE HISTORY:
20021030 V0.1 Initial RELAX NG grammar generated from book-cocoon-v10.dtd
using DTDinst (DC)
COPYRIGHT:
Copyright (c) 1999-2003 The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
provided this file is distributed untouched in all its parts and
included files.
==================================================================== -->
<define name="book">
<element name="book">
<ref name="attlist.book"/>
<oneOrMore>
<ref name="menu"/>
</oneOrMore>
</element>
</define>
<define name="menu">
<element name="menu">
<ref name="attlist.menu"/>
<zeroOrMore>
<choice>
<ref name="menu-item"/>
<ref name="external"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="menu-item">
<element name="menu-item">
<ref name="attlist.menu-item"/>
<empty/>
</element>
</define>
<define name="external">
<element name="external">
<ref name="attlist.external"/>
<empty/>
</element>
</define>
<define name="attlist.book" combine="interleave">
<attribute name="software"/>
<attribute name="title"/>
<attribute name="copyright"/>
<empty/>
</define>
<define name="attlist.menu" combine="interleave">
<attribute name="label"/>
</define>
<define name="attlist.menu-item" combine="interleave">
<attribute name="label"/>
<attribute name="href"/>
<optional>
<attribute name="type" a:defaultValue="visible">
<choice>
<value>visible</value>
<value>hidden</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.external" combine="interleave">
<attribute name="label"/>
<attribute name="href"/>
<optional>
<attribute name="type" a:defaultValue="visible">
<choice>
<value>visible</value>
<value>hidden</value>
</choice>
</attribute>
</optional>
</define>
<start>
<choice>
<ref name="book"/>
</choice>
</start>
</grammar>