code-srv-test/dita-ot-3.6/plugins/org.oasis-open.dita.techcomm.v2_0/rng/technicalContent/svg/relaxng.dtd
2021-03-23 22:38:58 +00:00

179 lines
4.4 KiB
DTD

<!-- relaxng.dtd
Based on grammar in section 3 of RELAX NG 1.0 (3 December 2001), which
made this very easy to put together. While entity declarations such as
those for param, start, and define may look redundant, I wanted this to
reflect the BNF grammar as closely as possible.
12/05/01 Bob DuCharme. Use at your own risk, no warrantee expressed or
implied, etc.
Last updated 12/31/01.
See http://www.snee.com/xml/relaxng/dtdChangeList.html for changes.
CL 2003-12-05
Added xml:lang to common attrs
Tested with:
- RELAX NG schema for RELAX NG, App A of spec:
http://www.oasis-open.org/committees/relax-ng/spec-20011203.html#IDA5MCS
- RELAX NG schema for RELAX NG at
http://thaiopensource.com/relaxng/relaxng.rng
- XSLT schema at http://thaiopensource.com/relaxng/xslt.rng
- testSuite.rng from http://thaiopensource.com/relaxng/testSuite.zip
-->
<!ENTITY % extensionAtts "">
<!ENTITY % extensionPattern "">
<!-- Add | before each one, e.g. "| x | y" -->
<!ENTITY % extensionGrammarContent "">
<!-- Add | before each one -->
<!ENTITY % commonAtts "datatypeLibrary CDATA #IMPLIED
ns CDATA #IMPLIED
xml:lang CDATA #IMPLIED
xmlns CDATA #FIXED 'http://relaxng.org/ns/structure/1.0'
%extensionAtts;">
<!-- Declare all nonterminals in grammar as parameter entities. -->
<!ENTITY % pattern "element | attribute | group | interleave | choice |
optional | zeroOrMore | oneOrMore | list | mixed |
ref | parentRef | empty | text | value | data |
notAllowed | externalRef | grammar %extensionPattern;">
<!ENTITY % param "param">
<!ENTITY % exceptPattern "except">
<!ENTITY % start "start">
<!ENTITY % define "define">
<!ENTITY % grammarContent "%start; | %define; |
div | include %extensionGrammarContent;">
<!ENTITY % includeContent "%start; | %define; | div %extensionGrammarContent;">
<!ENTITY % method "choice | interleave">
<!-- "| choice" not in the following; See change notes. -->
<!ENTITY % nameClass "name | anyName | nsName">
<!ENTITY % exceptNameClass "except">
<!ELEMENT element ((%nameClass;)?, (%pattern;)+)>
<!ATTLIST element
name NMTOKEN #IMPLIED
%commonAtts;
>
<!ELEMENT attribute ((%nameClass;)?, (%pattern;)?)>
<!ATTLIST attribute
name NMTOKEN #IMPLIED
%commonAtts;
>
<!ELEMENT group (%pattern;)+>
<!ATTLIST group
%commonAtts;
>
<!ELEMENT interleave (%pattern;)+>
<!ATTLIST interleave
%commonAtts;
>
<!ELEMENT choice (%nameClass; | %pattern;)+>
<!ATTLIST choice
%commonAtts;
>
<!ELEMENT optional (%pattern;)+>
<!ATTLIST optional
%commonAtts;
>
<!ELEMENT zeroOrMore (%pattern;)+>
<!ATTLIST zeroOrMore
%commonAtts;
>
<!ELEMENT oneOrMore (%pattern;)+>
<!ATTLIST oneOrMore
%commonAtts;
>
<!ELEMENT list (%pattern;)+>
<!ATTLIST list
%commonAtts;
>
<!ELEMENT mixed (%pattern;)+>
<!ATTLIST mixed
%commonAtts;
>
<!ELEMENT ref EMPTY>
<!ATTLIST ref
name NMTOKEN #REQUIRED
%commonAtts;
>
<!ELEMENT parentRef EMPTY>
<!ATTLIST parentRef
name NMTOKEN #REQUIRED
%commonAtts;
>
<!ELEMENT empty EMPTY>
<!ATTLIST empty
%commonAtts;
>
<!ELEMENT text EMPTY>
<!ATTLIST text
%commonAtts;
>
<!ELEMENT value (#PCDATA)>
<!ATTLIST value
type NMTOKEN #IMPLIED
%commonAtts;
>
<!ELEMENT data ((%param;)*, (%exceptPattern;)?)>
<!ATTLIST data
type NMTOKEN #REQUIRED
%commonAtts;
>
<!ELEMENT notAllowed EMPTY>
<!ATTLIST notAllowed
%commonAtts;
>
<!ELEMENT externalRef EMPTY>
<!ATTLIST externalRef
href CDATA #REQUIRED
%commonAtts;
>
<!ELEMENT grammar (%grammarContent;)*>
<!ATTLIST grammar
%commonAtts;
>
<!ELEMENT param (#PCDATA)>
<!ATTLIST param
name NMTOKEN #REQUIRED
>
<!ELEMENT except (%nameClass; | %pattern;)+>
<!ATTLIST except
%commonAtts;
>
<!ELEMENT div (%grammarContent;)*>
<!ATTLIST div
%commonAtts;
>
<!ELEMENT include (%includeContent;)*>
<!ATTLIST include
href CDATA #REQUIRED
%commonAtts;
>
<!ELEMENT start (%pattern;)>
<!ATTLIST start
combine (%method;) #IMPLIED
%commonAtts;
>
<!ELEMENT define (%pattern;)+>
<!ATTLIST define
name NMTOKEN #REQUIRED
combine (%method;) #IMPLIED
%commonAtts;
>
<!ELEMENT name (#PCDATA)>
<!ATTLIST name
%commonAtts;
>
<!ELEMENT anyName (%exceptNameClass;)?>
<!ATTLIST anyName
%commonAtts;
>
<!ELEMENT nsName (%exceptNameClass;)?>
<!ATTLIST nsName
%commonAtts;
>
<!-- eof for relaxng.dtd -->