diff vendor/pear/console_commandline/data/xmlschema.rng @ 0:1e000243b222

vanilla 1.3.3 distro, I hope
author Charlie Root
date Thu, 04 Jan 2018 15:50:29 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/pear/console_commandline/data/xmlschema.rng	Thu Jan 04 15:50:29 2018 -0500
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- 
+  This is the RNG file for validating Console_CommandLine xml definitions.
+
+  Author  : David JEAN LOUIS
+  Licence : MIT License
+  Version : CVS: $Id$
+-->
+
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" 
+         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+
+  <!-- structure -->
+  <start>
+      <ref name="ref_command"/>
+  </start>
+
+  <!-- Command node -->
+  <define name="ref_command_subcommand_common">
+    <interleave>
+      <optional>
+        <element name="name">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="description">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="version">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="add_help_option">
+          <ref name="ref_bool_choices"/>
+        </element>
+      </optional>
+      <optional>
+        <element name="add_version_option">
+          <ref name="ref_bool_choices"/>
+        </element>
+      </optional>
+      <optional>
+        <element name="force_posix">
+          <ref name="ref_bool_choices"/>
+        </element>
+      </optional>
+      <optional>
+        <ref name="ref_messages_common"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="ref_option"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="ref_argument"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="ref_subcommand"/>
+      </zeroOrMore>
+    </interleave>
+  </define>
+
+  <!-- command element -->
+
+  <define name="ref_command">
+    <element name="command">
+      <interleave>
+        <ref name="ref_command_subcommand_common"/>
+      </interleave>
+    </element>
+  </define>
+
+  <!-- subcommand element -->
+
+  <define name="ref_subcommand">
+    <element name="command">
+      <interleave>
+        <ref name="ref_command_subcommand_common"/>
+        <optional>
+          <element name="aliases">
+            <zeroOrMore>
+              <element name="alias">
+                <text/>
+              </element>
+            </zeroOrMore>
+          </element>
+        </optional>
+      </interleave>
+    </element>
+  </define>
+
+  <!-- custom messages common element -->
+
+  <define name="ref_messages_common">
+    <element name="messages">
+      <oneOrMore>
+        <element name="message">
+          <attribute name="name">
+            <data type="string"/>
+          </attribute>
+          <text/>
+        </element>
+      </oneOrMore>
+    </element>
+  </define>
+
+  <!-- options and arguments common elements -->
+
+  <define name="ref_option_argument_common">
+    <interleave>
+      <optional>
+        <element name="description">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="help_name">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="default">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <ref name="ref_messages_common"/>
+      </optional>
+    </interleave>
+  </define>
+
+  <!-- Option node -->
+  <define name="ref_option">
+    <element name="option">
+      <attribute name="name">
+        <data type="string"/>
+      </attribute>
+      <interleave>
+        <optional>
+          <element name="short_name">
+            <text/>
+          </element>
+        </optional>
+        <optional>
+          <element name="long_name">
+            <text/>
+          </element>
+        </optional>
+        <ref name="ref_option_argument_common"/>
+        <optional>
+          <element name="action">
+            <text/>
+          </element>
+        </optional>
+        <optional>
+          <element name="choices">
+            <zeroOrMore>
+              <element name="choice">
+                <text/>
+              </element>
+            </zeroOrMore>
+          </element>
+        </optional>
+        <optional>
+          <element name="add_list_option">
+            <ref name="ref_bool_choices"/>
+          </element>
+        </optional>
+      </interleave>
+    </element>
+  </define>
+
+  <!-- Argument node -->
+  <define name="ref_argument">
+    <element name="argument">
+      <attribute name="name">
+        <data type="string"/>
+      </attribute>
+      <interleave>
+        <ref name="ref_option_argument_common"/>
+        <optional>
+          <element name="multiple">
+            <ref name="ref_bool_choices"/>
+          </element>
+        </optional>
+        <optional>
+          <element name="optional">
+            <ref name="ref_bool_choices"/>
+          </element>
+        </optional>
+        <optional>
+          <element name="choices">
+            <zeroOrMore>
+              <element name="choice">
+                <text/>
+              </element>
+            </zeroOrMore>
+           </element>
+         </optional>
+      </interleave>
+    </element>
+  </define>
+
+  <!-- boolean choices -->
+  <define name="ref_bool_choices">
+    <choice>
+      <data type="token">
+        <param name="pattern">[Tt][Rr][Uu][Ee]</param>
+      </data>
+      <data type="token">
+        <param name="pattern">[On][Nn]</param>
+      </data>
+      <data type="token">
+        <param name="pattern">[Yy][Ee][Ss]</param>
+      </data>
+      <value>1</value>
+      <data type="token">
+        <param name="pattern">[Ff][Aa][Ll][Ss][Ee]</param>
+      </data>
+      <data type="token">
+        <param name="pattern">[Of][Ff][Ff]</param>
+      </data>
+      <data type="token">
+        <param name="pattern">[Nn][Oo]</param>
+      </data>
+      <value>0</value>
+    </choice>
+  </define>
+
+</grammar>