Files
tradon/ir/ui/board.rng
2025-12-26 13:11:43 +00:00

740 lines
18 KiB
XML
Executable File

<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
<define name="board">
<element>
<name ns="">board</name>
<ref name="attlist.board"/>
<zeroOrMore>
<choice>
<ref name="image"/>
<ref name="separator"/>
<ref name="label"/>
<ref name="newline"/>
<ref name="link"/>
<ref name="notebook"/>
<ref name="group"/>
<ref name="hpaned"/>
<ref name="vpaned"/>
<ref name="action"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="attlist.board" combine="interleave">
<optional>
<attribute a:defaultValue="4">
<name ns="">col</name>
<text/>
</attribute>
</optional>
</define>
<define name="image">
<element>
<name ns="">image</name>
<ref name="attlist.image"/>
<empty/>
</element>
</define>
<define name="attlist.image" combine="interleave">
<attribute>
<name ns="">name</name>
<text/>
</attribute>
</define>
<define name="attlist.image" combine="interleave">
<optional>
<attribute a:defaultValue="1">
<name ns="">colspan</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.image" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">yexpand</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.image" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">yfill</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.image" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">xexpand</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.image" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">xfill</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.image" combine="interleave">
<optional>
<attribute>
<name ns="">help</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.image" combine="interleave">
<optional>
<attribute>
<name ns="">states</name>
<text/>
</attribute>
</optional>
</define>
<define name="separator">
<element>
<name ns="">separator</name>
<ref name="attlist.separator"/>
<empty/>
</element>
</define>
<define name="attlist.separator" combine="interleave">
<optional>
<attribute a:defaultValue="">
<name ns="">string</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.separator" combine="interleave">
<choice>
<attribute>
<name ns="">name</name>
<text/>
</attribute>
<attribute>
<name ns="">name</name>
<text/>
</attribute>
</choice>
</define>
<define name="attlist.separator" combine="interleave">
<optional>
<attribute>
<name ns="">states</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.separator" combine="interleave">
<optional>
<attribute a:defaultValue="0.0">
<name ns="">xalign</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.separator" combine="interleave">
<optional>
<attribute a:defaultValue="1">
<name ns="">colspan</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.separator" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">yexpand</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.separator" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">yfill</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.separator" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">xexpand</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.separator" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">xfill</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.separator" combine="interleave">
<optional>
<attribute>
<name ns="">help</name>
<text/>
</attribute>
</optional>
</define>
<define name="label">
<element>
<name ns="">label</name>
<ref name="attlist.label"/>
<empty/>
</element>
</define>
<define name="attlist.label" combine="interleave">
<optional>
<attribute a:defaultValue="">
<name ns="">string</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.label" combine="interleave">
<choice>
<attribute>
<name ns="">name</name>
<text/>
</attribute>
<attribute>
<name ns="">name</name>
<text/>
</attribute>
</choice>
</define>
<define name="attlist.label" combine="interleave">
<optional>
<attribute>
<name ns="">states</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.label" combine="interleave">
<optional>
<attribute a:defaultValue="0.0">
<name ns="">xalign</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.label" combine="interleave">
<optional>
<attribute a:defaultValue="0.5">
<name ns="">yalign</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.label" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">yexpand</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.label" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">yfill</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.label" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">xexpand</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.label" combine="interleave">
<optional>
<attribute a:defaultValue="1">
<name ns="">xfill</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.label" combine="interleave">
<optional>
<attribute a:defaultValue="1">
<name ns="">colspan</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.label" combine="interleave">
<optional>
<attribute>
<name ns="">help</name>
<text/>
</attribute>
</optional>
</define>
<define name="newline">
<element>
<name ns="">newline</name>
<ref name="attlist.newline"/>
<empty/>
</element>
</define>
<define name="attlist.newline" combine="interleave">
<attribute>
<name ns="">id</name>
<text/>
</attribute>
</define>
<define name="link">
<element>
<name ns="">link</name>
<ref name="attlist.link"/>
<empty/>
</element>
</define>
<define name="attlist.link" combine="interleave">
<attribute>
<name ns="">name</name>
<text/>
</attribute>
</define>
<define name="attlist.link" combine="interleave">
<optional>
<attribute>
<name ns="">id</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.link" combine="interleave">
<optional>
<attribute a:defaultValue="1">
<name ns="">colspan</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.link" combine="interleave">
<optional>
<attribute>
<name ns="">states</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.link" combine="interleave">
<optional>
<attribute>
<name ns="">icon</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.link" combine="interleave">
<optional>
<attribute a:defaultValue="show">
<name ns="">empty</name>
<choice>
<value>show</value>
<value>hide</value>
</choice>
</attribute>
</optional>
</define>
<define name="notebook">
<element>
<name ns="">notebook</name>
<ref name="attlist.notebook"/>
<zeroOrMore>
<ref name="page"/>
</zeroOrMore>
</element>
</define>
<define name="attlist.notebook" combine="interleave">
<optional>
<attribute a:defaultValue="4">
<name ns="">colspan</name>
<text/>
</attribute>
</optional>
</define>
<define name="page">
<element>
<name ns="">page</name>
<ref name="attlist.page"/>
<zeroOrMore>
<choice>
<ref name="image"/>
<ref name="separator"/>
<ref name="label"/>
<ref name="newline"/>
<ref name="link"/>
<ref name="notebook"/>
<ref name="group"/>
<ref name="hpaned"/>
<ref name="vpaned"/>
<ref name="action"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="attlist.page" combine="interleave">
<optional>
<attribute>
<name ns="">angle</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.page" combine="interleave">
<optional>
<attribute a:defaultValue="Unknown">
<name ns="">string</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.page" combine="interleave">
<optional>
<attribute a:defaultValue="4">
<name ns="">col</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.page" combine="interleave">
<choice>
<attribute>
<name ns="">name</name>
<text/>
</attribute>
<attribute>
<name ns="">id</name>
<text/>
</attribute>
</choice>
</define>
<define name="group">
<element>
<name ns="">group</name>
<ref name="attlist.group"/>
<zeroOrMore>
<choice>
<ref name="image"/>
<ref name="separator"/>
<ref name="label"/>
<ref name="newline"/>
<ref name="link"/>
<ref name="notebook"/>
<ref name="group"/>
<ref name="hpaned"/>
<ref name="vpaned"/>
<ref name="action"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="attlist.group" combine="interleave">
<optional>
<attribute>
<name ns="">string</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.group" combine="interleave">
<optional>
<attribute a:defaultValue="1">
<name ns="">colspan</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.group" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">yexpand</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.group" combine="interleave">
<optional>
<attribute a:defaultValue="1">
<name ns="">yfill</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.group" combine="interleave">
<optional>
<attribute a:defaultValue="0.5">
<name ns="">yalign</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.group" combine="interleave">
<optional>
<attribute a:defaultValue="0">
<name ns="">xexpand</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.group" combine="interleave">
<optional>
<attribute a:defaultValue="1">
<name ns="">xfill</name>
<choice>
<value>0</value>
<value>1</value>
</choice>
</attribute>
</optional>
</define>
<define name="attlist.group" combine="interleave">
<optional>
<attribute a:defaultValue="0.5">
<name ns="">xalign</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.group" combine="interleave">
<optional>
<attribute a:defaultValue="1">
<name ns="">rowspan</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.group" combine="interleave">
<optional>
<attribute a:defaultValue="4">
<name ns="">col</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.group" combine="interleave">
<attribute>
<name ns="">id</name>
<text/>
</attribute>
</define>
<define name="hpaned">
<element>
<name ns="">hpaned</name>
<ref name="attlist.paned"/>
<zeroOrMore>
<ref name="child"/>
</zeroOrMore>
</element>
</define>
<define name="vpaned">
<element>
<name ns="">vpaned</name>
<ref name="attlist.paned"/>
<zeroOrMore>
<ref name="child"/>
</zeroOrMore>
</element>
</define>
<define name="attlist.paned" combine="interleave">
<optional>
<attribute a:defaultValue="4">
<name ns="">colspan</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.paned" combine="interleave">
<optional>
<attribute>
<name ns="">position</name>
<text/>
</attribute>
</optional>
</define>
<define name="attlist.paned" combine="interleave">
<attribute>
<name ns="">id</name>
<text/>
</attribute>
</define>
<define name="child">
<element>
<name ns="">child</name>
<ref name="attlist.child"/>
<zeroOrMore>
<choice>
<ref name="image"/>
<ref name="separator"/>
<ref name="label"/>
<ref name="newline"/>
<ref name="link"/>
<ref name="notebook"/>
<ref name="group"/>
<ref name="hpaned"/>
<ref name="vpaned"/>
<ref name="action"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="attlist.child" combine="interleave">
<attribute>
<name ns="">id</name>
<text/>
</attribute>
</define>
<define name="data">
<element>
<name ns="">data</name>
<ref name="attlist.data"/>
<oneOrMore>
<ref name="xpath"/>
</oneOrMore>
</element>
</define>
<define name="attlist.data" combine="interleave">
<empty/>
</define>
<define name="xpath">
<element>
<name ns="">xpath</name>
<ref name="attlist.xpath"/>
<zeroOrMore>
<choice>
<ref name="image"/>
<ref name="separator"/>
<ref name="label"/>
<ref name="newline"/>
<ref name="link"/>
<ref name="notebook"/>
<ref name="group"/>
<ref name="hpaned"/>
<ref name="vpaned"/>
<ref name="action"/>
<ref name="page"/>
<ref name="child"/>
<ref name="board"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="attlist.xpath" combine="interleave">
<attribute>
<name ns="">expr</name>
<text/>
</attribute>
</define>
<define name="attlist.xpath" combine="interleave">
<optional>
<attribute a:defaultValue="inside">
<name ns="">position</name>
<choice>
<value>inside</value>
<value>replace</value>
<value>replace_attributes</value>
<value>after</value>
<value>before</value>
</choice>
</attribute>
</optional>
</define>
<define name="action">
<element>
<name ns="">action</name>
<ref name="attlist.action"/>
<empty/>
</element>
</define>
<define name="attlist.action" combine="interleave">
<attribute>
<name ns="">name</name>
<text/>
</attribute>
</define>
<define name="attlist.action" combine="interleave">
<optional>
<attribute a:defaultValue="1">
<name ns="">colspan</name>
<text/>
</attribute>
</optional>
</define>
<define name="label" combine="choice">
<notAllowed/>
</define>
<start>
<choice>
<ref name="data"/>
<ref name="board"/>
<ref name="label"/>
</choice>
</start>
</grammar>