Verze pro odevzdani
[Kate_RNG_RNC_syntax.git] / rng.xml
blob0f457b1f445742b32ffbe7465719a4f5e89414d1
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE language SYSTEM "language.dtd"
4         <!ENTITY name    "[A-Za-z_][\w._-]*">
5 ]>
6 <language name="Relax NG" version="1.0" kateversion="2.4" section="Markup" extensions="*.rng;*.RNG" author="Zdeněk Klíma (klimazde@fel.cvut.cz)" license="LGPL" priority="5">
8   <highlighting>
10     <list name="element_list">
11       <item> div </item>
12       <item> element </item>
13       <item> grammar </item>
14       <item> start </item>
15       <item> ref </item>
16       <item> define </item>
17       <item> choice </item>
18       <item> attribute </item>
19       <item> data </item>
20       <item> interleave </item>
21       <item> optional </item>
22       <item> text </item>
23       <item> group </item>
24       <item> zeroOrMore </item>
25       <item> value </item>
26       <item> oneOrMore </item>
27       <item> except </item>
28       <item> anyName </item>
29       <item> nsName </item>
30       <item> parentRef </item>
31       <item> list </item>
32       <item> mixed </item>
33       <item> empty </item>
34       <item> notAllowed </item>
35       <item> externalRef </item>
36       <item> param </item>
37       <item> include </item>
38     </list>
39     
40     <list name="attribute_list">
41       <item> name </item>
42       <item> datatypeLibrary </item>
43       <item> ns </item>
44       <item> xmlns </item>
45       <item> type </item>
46       <item> href </item>
47       <item> combine </item>
48     </list>
49     
50     <list name="annotation_keyword_list">
51       <item> defaultValue </item>
52       <item> documentation </item>
53     </list>
54     
55     <contexts>
56     
57       <context name="cx_xmlDefinition" attribute="ds_normalText" lineEndContext="#stay" >
58         <StringDetect String="&lt;?xml" attribute="ds_xmlHead" context="#stay" />
59         <StringDetect String="?&gt;" attribute="ds_xmlHead" context="#stay" />
60         <IncludeRules context="cx_start" />
61       </context>
62     
63       <context name="cx_start" attribute="ds_normalText" lineEndContext="#stay" >
64         <StringDetect String="&lt;!--" attribute="ds_comment" context="cx_comment" />
65         <DetectChar char="&lt;" attribute="ds_rngElement" context="cx_elementStart" />
66         <DetectChar char="&amp;" attribute="ds_error" context="#stay" />
67         <keyword String="datatype_list" attribute="ds_xsdDatatype" context="#stay" />
68       </context>
69     
70       <context name="cx_comment" attribute="ds_comment" lineEndContext="#stay">
71         <StringDetect String="--&gt;" attribute="ds_comment" context="#pop" />
72         <Detect2Chars char="-" char1="-" attribute="ds_error" context="#stay" />
73       </context>
74       
75       <context name="cx_elementStart" attribute="ds_normalText" lineEndContext="#stay">
76         <RegExpr String="&name;:" attribute="ds_nameSpace" context="#stay" />
77         <keyword String="element_list" attribute="ds_rngElement" context="#stay" />
78         <keyword String="annotation_keyword_list" attribute="ds_annotationKeyword" context="#stay" />
79         <RegExpr String="&name;" attribute="ds_anyElement" context="#stay" />
80         <RegExpr String="\s+&name;" lookAhead="true" context="cx_attribute" />
81         <Detect2Chars char="/" char1="&gt;" attribute="ds_rngElement" context="#pop" />
82         <DetectChar char="&gt;" attribute="ds_rngElement" context="cx_elementContent" />
83         <RegExpr String="\S" attribute="ds_error" context="#stay" />
84       </context>
86       <context name="cx_attribute" attribute="ds_normalText" lineEndContext="#stay">
87         <DetectSpaces />
88         <StringDetect String="xmlns" attribute="ds_rngAttribute" context="cx_nameSpaceDefinition" />
89         <RegExpr String="&name;:" attribute="ds_nameSpace" context="#stay" />
90         <keyword String="attribute_list" attribute="ds_rngAttribute" context="#stay" />
91         <keyword String="annotation_keyword_list" attribute="ds_annotationKeyword" context="#stay" />
92         <RegExpr String="&name;" attribute="ds_anyAttribute" context="#stay" />
93         <DetectChar char="=" attribute="ds_rngAttribute" context="cx_value"  />
94         <RegExpr String="\S" attribute="ds_error" context="#stay" />
95       </context>
96       
97       <context name="cx_nameSpaceDefinition" attribute="ds_normalText" lineEndContext="#stay">
98         <DetectChar char="=" lookAhead="true" attribute="ds_rngAttribute" context="#pop" />
99         <RegExpr String=":&name;" attribute="ds_nameSpace" context="#stay" />
100       </context>
101       
102       <context name="cx_value" attribute="ds_value" lineEndContext="#stay">
103         <DetectChar char="&quot;" attribute="ds_value" context="cx_value_dq" />
104         <DetectChar char="&apos;" attribute="ds_value" context="cx_value_sq" />
105         <RegExpr String="\S" attribute="ds_error" context="#stay" />
106       </context>
107       
108       <context name="cx_value_dq" attribute="ds_value" lineEndContext="#stay">
109         <DetectChar char="&quot;" attribute="ds_value" context="#pop#pop#pop" />
110         <IncludeRules context="cx_valueInvalidChars" />
111       </context>
112       
113       <context name="cx_value_sq" attribute="ds_value" lineEndContext="#stay">
114         <DetectChar char="&apos;" attribute="ds_value" context="#pop#pop#pop" />
115         <IncludeRules context="cx_valueInvalidChars" />
116       </context>
118       <context name="cx_valueInvalidChars" attribute="ds_error" lineEndContext="#stay">
119         <DetectChar char="&amp;" attribute="ds_error" context="#stay" />
120         <DetectChar char="&lt;" attribute="ds_error" context="#stay" />
121       </context>
123       <context name="cx_elementContent" attribute="ds_normalText" lineEndContext="#stay">
124         <Detect2Chars char="&lt;" char1="/" attribute="ds_rngElement" context="cx_elementEnd" />
125         <IncludeRules context="cx_start" />
126       </context>
127       
128       <context name="cx_elementEnd" attribute="ds_normalText" lineEndContext="#stay">
129         <RegExpr String="&name;:" attribute="ds_nameSpace" context="#stay" />
130         <DetectChar char="&gt;" attribute="ds_rngElement" context="#pop#pop#pop"  />
131         <keyword String="element_list" attribute="ds_rngElement" context="#stay" />
132         <keyword String="annotation_keyword_list" attribute="ds_annotationKeyword" context="#stay" />
133         <RegExpr String="&name;" attribute="ds_anyElement" context="#stay" />
134         <RegExpr String="\s[^&gt;]" attribute="ds_error" context="#stay" />
135         <RegExpr String="\S" attribute="ds_error" context="#stay" />
136       </context>
137     </contexts>
138     
139     <itemDatas>
140       <itemData name="ds_normalText" defStyleNum="dsNormal" />
141       <itemData name="ds_xmlHead" defStyleNum="dsKeyword" />
142       <itemData name="ds_comment" defStyleNum="dsComment" />
143       <itemData name="ds_error" defStyleNum="dsError" />
144       <itemData name="ds_rngElement" defStyleNum="dsString" color="#000080" selColor="#ffffff" bold="1" italic="0" />
145       <itemData name="ds_anyElement" defStyleNum="dsString" color="#000080" selColor="#ffffff" bold="0" italic="1" underline="1" />
146       <itemData name="ds_rngAttribute" defStyleNum="dsString" color="#008000" selColor="#ffffff" bold="0" italic="0" />
147       <itemData name="ds_anyAttribute" defStyleNum="dsString" color="#008000" selColor="#ffffff" bold="0" italic="1" underline="1" />
148       <itemData name="ds_value" defStyleNum="dsString" color="#800000" selColor="#ffffff" bold="0" italic="0" />
149       <itemData name="ds_nameSpace" defStyleNum="dsString" color="#800080" selColor="#ffffff" bold="1" italic="0" />
150       <itemData name="ds_annotationKeyword" defStyleNum="dsString" bold="1" color="#FF0000" />
151     </itemDatas>
153   </highlighting>
154   
155   <general>
156   
157     <comments>
158       <comment name="multiLine" start="&lt;!--" end="--&gt;" />
159     </comments>
160     
161     <indentation mode="xml" />
162     
163   </general>
164   
165 </language>