alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

jEdit example source code file (html.xml)

This example jEdit source code file (html.xml) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - jEdit tags/keywords

begin, begin, delegate, end, javascript, markup, markup, rules, seq, span, span, span_regexp, type, type

The jEdit html.xml source code

<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<MODE>
	<PROPS>
		<PROPERTY NAME="commentStart" VALUE="<!--" />
		<PROPERTY NAME="commentEnd" VALUE="-->" />
	</PROPS>

	<RULES IGNORE_CASE="TRUE">
		<!-- SGML comment -->
		<SPAN TYPE="COMMENT1">
			<BEGIN><!--
			<END>-->
		</SPAN>

		<!-- JavaScript -->
		<SPAN TYPE="MARKUP" DELEGATE="JAVASCRIPT">
			<BEGIN><SCRIPT
			<END></SCRIPT>
		</SPAN>

		<!-- stylesheet -->
		<SPAN TYPE="MARKUP" DELEGATE="CSS">
			<BEGIN><STYLE
			<END></STYLE>
		</SPAN>

		<!-- DTD instructions -->
		<SPAN TYPE="KEYWORD2" DELEGATE="xml::DTD-TAGS">
			<BEGIN><!
			<END>>
		</SPAN>

		<!-- markup tags -->
		<SPAN TYPE="MARKUP" DELEGATE="TAGS">
			<BEGIN><
			<END>>
		</SPAN>

		<!-- SGML entities -->
		<SPAN TYPE="LITERAL2" NO_WORD_BREAK="TRUE">
			<BEGIN>&
			<END>;
		</SPAN>
	</RULES>

	<!-- ESCAPE is not exactly right but it is needed to correctly
	     handle JavaScript in on* parameters.
             NOTE: ESCAPE moved from RULE to SPANs! -->
	<RULES SET="TAGS" DEFAULT="MARKUP">
		<!-- Inline CSS -->
 		<SPAN_REGEXP AT_WORD_START="TRUE" TYPE="MARKUP" DELEGATE="css::PROPERTIES" HASH_CHAR="style">
			<BEGIN>style\s*=\s*(["'])
			<END>$1
		</SPAN_REGEXP>

		<!-- Javascript: delegate on* attributes to Javascript mode -->
 		<SPAN_REGEXP AT_WORD_START="TRUE" DELEGATE="javascript::MAIN" HASH_CHAR="on" TYPE="MARKUP">
			<BEGIN>on[a-z]+\s*=\s*(["'])
			<END>$1
		</SPAN_REGEXP>

		<!-- NOTE: no ESCAPE for quotes, at least for attributes; e.g onclick="alert(\"foo\");" is invalid! -->
		<SPAN TYPE="LITERAL1">
			<BEGIN>"
			<END>"
		</SPAN>
		<SPAN TYPE="LITERAL1">
			<BEGIN>'
			<END>'
		</SPAN>

		<SEQ TYPE="OPERATOR">=

		<KEYWORDS>
			<!-- HTML/XHTML elements, taken from http://de.selfhtml.org/html/referenz/elemente.htm -->
			<MARKUP>a
			<MARKUP>abbr
			<MARKUP>acronym
			<MARKUP>address
			<MARKUP>applet
			<MARKUP>area
			<MARKUP>b
			<MARKUP>base
			<MARKUP>basefont
			<MARKUP>bdo
			<MARKUP>big
			<MARKUP>blockquote
			<MARKUP>body
			<MARKUP>br
			<MARKUP>button
			<MARKUP>caption
			<MARKUP>center
			<MARKUP>cite
			<MARKUP>code
			<MARKUP>col
			<MARKUP>colgroup
			<MARKUP>dd
			<MARKUP>del
			<MARKUP>dfn
			<MARKUP>dir
			<MARKUP>div
			<MARKUP>dl
			<MARKUP>dt
			<MARKUP>em
			<MARKUP>fieldset
			<MARKUP>font
			<MARKUP>form
			<MARKUP>frame
			<MARKUP>frameset
			<MARKUP>h1
			<MARKUP>h2
			<MARKUP>h3
			<MARKUP>h4
			<MARKUP>h5
			<MARKUP>h6
			<MARKUP>head
			<MARKUP>hr
			<MARKUP>html
			<MARKUP>i
			<MARKUP>iframe
			<MARKUP>img
			<MARKUP>input
			<MARKUP>ins
			<MARKUP>isindex
			<MARKUP>kbd
			<MARKUP>label
			<MARKUP>legend
			<MARKUP>li
			<MARKUP>link
			<MARKUP>map
			<MARKUP>menu
			<MARKUP>meta
			<MARKUP>noframes
			<MARKUP>noscript
			<MARKUP>object
			<MARKUP>ol
			<MARKUP>optgroup
			<MARKUP>option
			<MARKUP>p
			<MARKUP>param
			<MARKUP>pre
			<MARKUP>q
			<MARKUP>s
			<MARKUP>samp
			<MARKUP>script
			<MARKUP>select
			<MARKUP>small
			<MARKUP>span
			<MARKUP>strike
			<MARKUP>strong
			<MARKUP>style
			<MARKUP>sub
			<MARKUP>sup
			<MARKUP>table
			<MARKUP>tbody
			<MARKUP>td
			<MARKUP>textarea
			<MARKUP>tfoot
			<MARKUP>th
			<MARKUP>thead
			<MARKUP>title
			<MARKUP>tr
			<MARKUP>tt
			<MARKUP>u
			<MARKUP>ul
			<MARKUP>var
		</KEYWORDS>
	</RULES>

	<RULES SET="JAVASCRIPT" DEFAULT="MARKUP" IGNORE_CASE="TRUE">
		<SEQ TYPE="MARKUP" DELEGATE="javascript::MAIN">>
		<!-- handle