diff options
Diffstat (limited to 'xml/constraints-1.2.rng')
-rw-r--r-- | xml/constraints-1.2.rng | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/xml/constraints-1.2.rng b/xml/constraints-1.2.rng new file mode 100644 index 0000000..bff62db --- /dev/null +++ b/xml/constraints-1.2.rng @@ -0,0 +1,228 @@ +<?xml version="1.0" encoding="UTF-8"?> +<grammar xmlns="http://relaxng.org/ns/structure/1.0" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <start> + <ref name="element-constraints"/> + </start> + + <define name="element-constraints"> + <element name="constraints"> + <zeroOrMore> + <choice> + <ref name="element-location"/> + <ref name="element-colocation"/> + <ref name="element-order"/> + <ref name="element-rsc_ticket"/> + </choice> + </zeroOrMore> + </element> + </define> + + <define name="element-location"> + <element name="rsc_location"> + <attribute name="id"><data type="ID"/></attribute> + <choice> + <group> + <attribute name="rsc"><data type="IDREF"/></attribute> + <optional> + <attribute name="role"> + <ref name="attribute-roles"/> + </attribute> + </optional> + </group> + <oneOrMore> + <ref name="element-resource-set"/> + </oneOrMore> + </choice> + <choice> + <group> + <externalRef href="score.rng"/> + <attribute name="node"><text/></attribute> + </group> + <oneOrMore> + <externalRef href="rule.rng"/> + </oneOrMore> + </choice> + <optional> + <ref name="element-lifetime"/> + </optional> + </element> + </define> + + <define name="element-resource-set"> + <element name="resource_set"> + <choice> + <attribute name="id-ref"><data type="IDREF"/></attribute> + <group> + <attribute name="id"><data type="ID"/></attribute> + <optional> + <attribute name="sequential"><data type="boolean"/></attribute> + </optional> + <optional> + <attribute name="require-all"><data type="boolean"/></attribute> + </optional> + <optional> + <attribute name="action"> + <ref name="attribute-actions"/> + </attribute> + </optional> + <optional> + <attribute name="role"> + <ref name="attribute-roles"/> + </attribute> + </optional> + <optional> + <externalRef href="score.rng"/> + </optional> + <oneOrMore> + <element name="resource_ref"> + <attribute name="id"><data type="IDREF"/></attribute> + </element> + </oneOrMore> + </group> + </choice> + </element> + </define> + + <define name="element-colocation"> + <element name="rsc_colocation"> + <attribute name="id"><data type="ID"/></attribute> + <optional> + <choice> + <externalRef href="score.rng"/> + <attribute name="score-attribute"><text/></attribute> + <attribute name="score-attribute-mangle"><text/></attribute> + </choice> + </optional> + <optional> + <ref name="element-lifetime"/> + </optional> + <choice> + <oneOrMore> + <ref name="element-resource-set"/> + </oneOrMore> + <group> + <attribute name="rsc"><data type="IDREF"/></attribute> + <attribute name="with-rsc"><data type="IDREF"/></attribute> + <optional> + <attribute name="node-attribute"><text/></attribute> + </optional> + <optional> + <attribute name="rsc-role"> + <ref name="attribute-roles"/> + </attribute> + </optional> + <optional> + <attribute name="with-rsc-role"> + <ref name="attribute-roles"/> + </attribute> + </optional> + </group> + </choice> + </element> + </define> + + <define name="element-order"> + <element name="rsc_order"> + <attribute name="id"><data type="ID"/></attribute> + <optional> + <ref name="element-lifetime"/> + </optional> + <optional> + <attribute name="symmetrical"><data type="boolean"/></attribute> + </optional> + <optional> + <choice> + <externalRef href="score.rng"/> + <attribute name="kind"> + <ref name="order-types"/> + </attribute> + </choice> + </optional> + <choice> + <oneOrMore> + <ref name="element-resource-set"/> + </oneOrMore> + <group> + <attribute name="first"><data type="IDREF"/></attribute> + <attribute name="then"><data type="IDREF"/></attribute> + <optional> + <attribute name="first-action"> + <ref name="attribute-actions"/> + </attribute> + </optional> + <optional> + <attribute name="then-action"> + <ref name="attribute-actions"/> + </attribute> + </optional> + </group> + </choice> + </element> + </define> + + <define name="element-rsc_ticket"> + <element name="rsc_ticket"> + <attribute name="id"><data type="ID"/></attribute> + <choice> + <oneOrMore> + <ref name="element-resource-set"/> + </oneOrMore> + <group> + <attribute name="rsc"><data type="IDREF"/></attribute> + <optional> + <attribute name="rsc-role"> + <ref name="attribute-roles"/> + </attribute> + </optional> + </group> + </choice> + <attribute name="ticket"><text/></attribute> + <optional> + <attribute name="loss-policy"> + <choice> + <value>stop</value> + <value>demote</value> + <value>fence</value> + <value>freeze</value> + </choice> + </attribute> + </optional> + </element> + </define> + + <define name="attribute-actions"> + <choice> + <value>start</value> + <value>promote</value> + <value>demote</value> + <value>stop</value> + </choice> + </define> + + <define name="attribute-roles"> + <choice> + <value>Stopped</value> + <value>Started</value> + <value>Master</value> + <value>Slave</value> + </choice> + </define> + + <define name="order-types"> + <choice> + <value>Optional</value> + <value>Mandatory</value> + <value>Serialize</value> + </choice> + </define> + + <define name="element-lifetime"> + <element name="lifetime"> + <oneOrMore> + <externalRef href="rule.rng"/> + </oneOrMore> + </element> + </define> + +</grammar> |