123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- <?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>
|