summaryrefslogtreecommitdiffstats
path: root/testSuite.rng
diff options
context:
space:
mode:
authorJan Pokorný <jpokorny@redhat.com>2013-01-21 18:32:54 +0100
committerJan Pokorný <jpokorny@redhat.com>2013-01-21 18:32:54 +0100
commit73e9f64af524be2fc3a34ee1c473b64d12efbef2 (patch)
tree736a4c64f3d0e913498dae501bbdf3fb79aa12cc /testSuite.rng
downloadrnc2rng-73e9f64af524be2fc3a34ee1c473b64d12efbef2.tar.gz
rnc2rng-73e9f64af524be2fc3a34ee1c473b64d12efbef2.tar.xz
rnc2rng-73e9f64af524be2fc3a34ee1c473b64d12efbef2.zip
Initial commit, based on rnc.zip from gnosis.cx/download/relax
Complete URL: http://www.gnosis.cx/download/relax/rnc.zip Signed-off-by: David Mertz/www.gnosis.cx
Diffstat (limited to 'testSuite.rng')
-rw-r--r--testSuite.rng157
1 files changed, 157 insertions, 0 deletions
diff --git a/testSuite.rng b/testSuite.rng
new file mode 100644
index 0000000..e3649c6
--- /dev/null
+++ b/testSuite.rng
@@ -0,0 +1,157 @@
+<?xml version="1.0"?>
+<!-- $Id: testSuite.rng,v 1.10 2002/04/30 07:00:05 jjc Exp $ -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="">
+ <!--
+ Target namespace is intentionally set to "" so as not to interfere with
+ prefix/URI bindings
+ -->
+
+ <start>
+ <ref name="testSuite"/>
+ </start>
+
+ <define name="testSuite">
+ <element name="testSuite">
+ <ref name="header"/>
+ <zeroOrMore>
+ <choice>
+ <ref name="testSuite"/>
+ <ref name="testCase"/>
+ </choice>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="testCase">
+ <element name="testCase">
+ <ref name="header"/>
+
+ <ref name="resources"/>
+
+ <choice>
+
+ <!-- Incorrect schema -->
+ <element name="incorrect">
+ <ref name="dtd"/>
+ <ref name="anyElement"/>
+ </element>
+
+ <!-- Correct schema and test cases -->
+ <group>
+ <element name="correct">
+ <ref name="dtd"/>
+ <externalRef href="relaxng.rng"/>
+ </element>
+ <zeroOrMore>
+ <choice>
+ <!-- Valid test cases -->
+ <element name="valid">
+ <ref name="dtd"/>
+ <ref name="anyElement"/>
+ </element>
+ <!-- Invalid test cases -->
+ <element name="invalid">
+ <ref name="dtd"/>
+ <ref name="anyElement"/>
+ </element>
+ </choice>
+ </zeroOrMore>
+ </group>
+
+ </choice>
+
+ </element>
+ </define>
+
+ <define name="any">
+ <zeroOrMore>
+ <choice>
+ <ref name="anyElement"/>
+ <attribute>
+ <anyName/>
+ <text/>
+ </attribute>
+ <text/>
+ </choice>
+ </zeroOrMore>
+ </define>
+
+ <define name="anyElement">
+ <element>
+ <anyName/>
+ <ref name="any"/>
+ </element>
+ </define>
+
+ <define name="header">
+ <zeroOrMore>
+ <choice>
+ <element name="title">
+ <text/>
+ </element>
+ <element name="documentation">
+ <text/>
+ </element>
+ <element name="author">
+ <text/>
+ </element>
+ <!-- Email address for correspondence about test cases. -->
+ <element name="email">
+ <text/>
+ </element>
+ <!-- Section of the specification being tested. -->
+ <element name="section">
+ <text/>
+ </element>
+ <element name="requires">
+ <attribute name="datatypeLibrary"/>
+ </element>
+ <element>
+ <anyName>
+ <except>
+ <nsName/>
+ </except>
+ </anyName>
+ <ref name="any"/>
+ </element>
+ </choice>
+ </zeroOrMore>
+ </define>
+
+ <define name="resources">
+ <zeroOrMore>
+ <choice>
+ <element name="resource">
+ <attribute name="name">
+ <ref name="pathSegment"/>
+ </attribute>
+ <ref name="dtd"/>
+ <ref name="anyElement"/>
+ </element>
+ <element name="dir">
+ <attribute name="name">
+ <ref name="pathSegment"/>
+ </attribute>
+ <ref name="resources"/>
+ </element>
+ </choice>
+ </zeroOrMore>
+ </define>
+
+ <define name="dtd">
+ <optional>
+ <attribute name="dtd"/>
+ </optional>
+ </define>
+
+ <!-- A relative URI segment. -->
+
+ <define name="pathSegment">
+ <data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
+ type="string">
+ <!-- one or more RFC 2396 pchars -->
+ <param name="pattern">([\-A-Za-z0-9:@&amp;=+$,_.!~*'()]|%[0-9a-fA-F][0-9a-fA-F])+</param>
+ </data>
+ </define>
+
+</grammar>