You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdepim/kresources/featureplan/kde-features.rng

151 lines
3.5 KiB

<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0">
<define name="features">
<element name="features">
<ref name="attlist.features"/>
<oneOrMore>
<ref name="category"/>
</oneOrMore>
</element>
</define>
<define name="attlist.features" combine="interleave">
<empty/>
</define>
<define name="category">
<element name="category">
<ref name="attlist.category"/>
<zeroOrMore>
<choice>
<ref name="feature"/>
<ref name="category"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="attlist.category" combine="interleave">
<attribute name="name"/>
</define>
<define name="feature">
<element name="feature">
<ref name="attlist.feature"/>
<optional>
<ref name="summary"/>
</optional>
<zeroOrMore>
<ref name="responsible"/>
</zeroOrMore>
</element>
</define>
<define name="attlist.feature" combine="interleave">
<optional>
<attribute name="status" a:defaultValue="todo">
<choice>
<value>inprogress</value>
<value>todo</value>
<value>done</value>
</choice>
</attribute>
</optional>
<attribute name="target"/>
</define>
<define name="responsible">
<element name="responsible">
<ref name="attlist.responsible"/>
<empty/>
</element>
</define>
<define name="attlist.responsible" combine="interleave">
<optional>
<attribute name="name"/>
</optional>
<optional>
<attribute name="email"/>
</optional>
</define>
<define name="summary">
<element name="summary">
<ref name="attlist.summary"/>
<zeroOrMore>
<choice>
<text/>
<ref name="i"/>
<ref name="a"/>
<ref name="b"/>
<ref name="em"/>
<ref name="strong"/>
<ref name="br"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="attlist.summary" combine="interleave">
<empty/>
</define>
<define name="i">
<element name="i">
<ref name="attlist.i"/>
<text/>
</element>
</define>
<define name="attlist.i" combine="interleave">
<empty/>
</define>
<define name="b">
<element name="b">
<ref name="attlist.b"/>
<text/>
</element>
</define>
<define name="attlist.b" combine="interleave">
<empty/>
</define>
<define name="em">
<element name="em">
<ref name="attlist.em"/>
<text/>
</element>
</define>
<define name="attlist.em" combine="interleave">
<empty/>
</define>
<define name="strong">
<element name="strong">
<ref name="attlist.strong"/>
<text/>
</element>
</define>
<define name="attlist.strong" combine="interleave">
<empty/>
</define>
<define name="br">
<element name="br">
<ref name="attlist.br"/>
<empty/>
</element>
</define>
<define name="attlist.br" combine="interleave">
<empty/>
</define>
<define name="a">
<element name="a">
<ref name="attlist.a"/>
<text/>
</element>
</define>
<define name="attlist.a" combine="interleave">
<optional>
<attribute name="href"/>
</optional>
</define>
<define name="attlist.a" combine="interleave">
<optional>
<attribute name="title"/>
</optional>
</define>
<start>
<choice>
<ref name="features"/>
</choice>
</start>
</grammar>