1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE language SYSTEM "language.dtd"
4 <!ENTITY name "[A-Za-z_][\w._-]*">
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">
10 <list name="element_list">
12 <item> element </item>
13 <item> grammar </item>
18 <item> attribute </item>
20 <item> interleave </item>
21 <item> optional </item>
24 <item> zeroOrMore </item>
26 <item> oneOrMore </item>
28 <item> anyName </item>
30 <item> parentRef </item>
34 <item> notAllowed </item>
35 <item> externalRef </item>
37 <item> include </item>
40 <list name="attribute_list">
42 <item> datatypeLibrary </item>
47 <item> combine </item>
50 <list name="annotation_keyword_list">
51 <item> defaultValue </item>
52 <item> documentation </item>
57 <context name="cx_xmlDefinition" attribute="ds_normalText" lineEndContext="#stay" >
58 <StringDetect String="<?xml" attribute="ds_xmlHead" context="#stay" />
59 <StringDetect String="?>" attribute="ds_xmlHead" context="#stay" />
60 <IncludeRules context="cx_start" />
63 <context name="cx_start" attribute="ds_normalText" lineEndContext="#stay" >
64 <StringDetect String="<!--" attribute="ds_comment" context="cx_comment" />
65 <DetectChar char="<" attribute="ds_rngElement" context="cx_elementStart" />
66 <DetectChar char="&" attribute="ds_error" context="#stay" />
67 <keyword String="datatype_list" attribute="ds_xsdDatatype" context="#stay" />
70 <context name="cx_comment" attribute="ds_comment" lineEndContext="#stay">
71 <StringDetect String="-->" attribute="ds_comment" context="#pop" />
72 <Detect2Chars char="-" char1="-" attribute="ds_error" context="#stay" />
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=">" attribute="ds_rngElement" context="#pop" />
82 <DetectChar char=">" attribute="ds_rngElement" context="cx_elementContent" />
83 <RegExpr String="\S" attribute="ds_error" context="#stay" />
86 <context name="cx_attribute" attribute="ds_normalText" lineEndContext="#stay">
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" />
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" />
102 <context name="cx_value" attribute="ds_value" lineEndContext="#stay">
103 <DetectChar char=""" attribute="ds_value" context="cx_value_dq" />
104 <DetectChar char="'" attribute="ds_value" context="cx_value_sq" />
105 <RegExpr String="\S" attribute="ds_error" context="#stay" />
108 <context name="cx_value_dq" attribute="ds_value" lineEndContext="#stay">
109 <DetectChar char=""" attribute="ds_value" context="#pop#pop#pop" />
110 <IncludeRules context="cx_valueInvalidChars" />
113 <context name="cx_value_sq" attribute="ds_value" lineEndContext="#stay">
114 <DetectChar char="'" attribute="ds_value" context="#pop#pop#pop" />
115 <IncludeRules context="cx_valueInvalidChars" />
118 <context name="cx_valueInvalidChars" attribute="ds_error" lineEndContext="#stay">
119 <DetectChar char="&" attribute="ds_error" context="#stay" />
120 <DetectChar char="<" attribute="ds_error" context="#stay" />
123 <context name="cx_elementContent" attribute="ds_normalText" lineEndContext="#stay">
124 <Detect2Chars char="<" char1="/" attribute="ds_rngElement" context="cx_elementEnd" />
125 <IncludeRules context="cx_start" />
128 <context name="cx_elementEnd" attribute="ds_normalText" lineEndContext="#stay">
129 <RegExpr String="&name;:" attribute="ds_nameSpace" context="#stay" />
130 <DetectChar char=">" 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[^>]" attribute="ds_error" context="#stay" />
135 <RegExpr String="\S" attribute="ds_error" context="#stay" />
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" />
158 <comment name="multiLine" start="<!--" end="-->" />
161 <indentation mode="xml" />