From: <mag...@er...> - 2003-09-11 09:27:23
|
The syntax of XSLT 1.0 (and XPath 1.0) is a pure subset of XSLT 2.0 (and XPath 2.0). This means that a valid XSLT 1.0 stylesheet will be highlighted correctly in any case. The only problem is that, if the user tries to use XSLT 2.0 specific syntax in an XSLT 1.0 stylesheet, there will be no indication that the syntax is not valid (until the stylesheet is used, assuming backwards compatible behavior by the stylesheet processor). Personally, I don't think it is much of a problem. How does other edit modes handle differences between language versions? // Magnus -----Original Message----- From: Slava Pestov [mailto:sl...@je...] Sent: den 10 september 2003 23:07 To: jed...@li... Subject: Re: [ jEdit-users ] Alternative (or updated) XSL mode Wouldn't it suffice to have XSL 1.0 and 2.0 tags highlghted with different token types? I don't want to have 2 modes for this since there will be no way to pick the correct one depending on the file at hand (so users would end up using only one or the other anyway). On Wed, 2003-09-10 at 10:14, Robert McKinnon wrote: > I would prefer that we have two separate XSL edit modes, one for XSL > 1.0 and another for XSL 2.0. That way users who only want to develop > using XSL 1.0 aren't confused by highlighting specific to XSL 2.0. > > Rob. > > --- Magnus_Henriksson_(M/EAB) <mag...@er...> wrote: > > Hi, > > > > I have made an alternative (or updated) XSL edit mode for JEdit42pre. > > Covers XSLT 1.0 and 2.0 (W3C Working Draft 2 May 2003) incl. XPATH > > 2.0 (W3C Working Draft 22 August 2003). > > > > This is my first attempt to write an edit mode, so there is most > > likely room for improvement. Do with it as you please, it works for > > me. > > > > xsl.xml follows: > > > > > > > > > > <?xml version="1.0"?> > > <!DOCTYPE MODE SYSTEM "xmode.dtd"> > > <!-- > > > > > ====================================================================== > > Edit mode for XSLT 1.0 and XSLT 2.0 (W3C Working Draft 2 May 2003) > > > > > ====================================================================== > > Token types: > > > > COMMENT1 XML comments > > COMMENT2 XPath 2.0 comments - top or nested within COMMENT3 > > COMMENT3 XPath 2.0 comments - nested within COMMENT2 > > COMMENT4 - > > DIGIT Digits > > FUNCTION Functions > > INVALID - > > KEYWORD1 XSLT 2.0 tags > > KEYWORD2 Attribute values and DTD constructs (not CDATA sections) > > KEYWORD3 Axes specifiers > > KEYWORD4 CDATA sections > > LABEL Namespace prefixes > > LITERAL1 String literals and CDATA section content > > LITERAL2 Parameter and variable references > > LITERAL3 Entity references > > LITERAL4 Processing instructions > > MARKUP Result elements and extension elements > > OPERATOR XPath 2.0 keywords + some other stuff > > > > > ====================================================================== > > --> > > > > <MODE> > > > > <PROPS> > > <PROPERTY NAME="commentStart" VALUE="<!--"/> > > <PROPERTY NAME="commentEnd" VALUE="-->"/> > > </PROPS> > > > > <RULES HIGHLIGHT_DIGITS="FALSE" IGNORE_CASE="FALSE"> > > > > <!-- XML comments --> > > <SPAN TYPE="COMMENT1"> > > <BEGIN><!--</BEGIN> > > <END>--></END> > > </SPAN> > > > > <!-- CDATA sections --> > > <SPAN TYPE="KEYWORD4" DELEGATE="CDATA"> > > <BEGIN><![CDATA[</BEGIN> > > <END>]]></END> > > </SPAN> > > > > <!-- DTD constructs --> > > <SPAN TYPE="KEYWORD2" DELEGATE="xml::DTD-TAGS"> > > <BEGIN><!</BEGIN> > > <END>></END> > > </SPAN> > > > > <!-- Processing instructions --> > > <SPAN TYPE="LITERAL4"> > > <BEGIN><?</BEGIN> > > <END>?></END> > > </SPAN> > > > > <!-- Tags --> > > <SPAN TYPE="MARKUP" DELEGATE="TAGS"> > > <BEGIN><</BEGIN> > > <END>></END> > > </SPAN> > > > > <!-- Entity references --> > > <SPAN TYPE="LITERAL3" NO_WORD_BREAK="TRUE"> > > <BEGIN>&</BEGIN> > > <END>;</END> > > </SPAN> > > > > </RULES> > > > > <!-- CDATA content. No rules, just highlight as LITERAL1 --> > > <RULES SET="CDATA" DEFAULT="LITERAL1"/> > > > > <!-- All tags --> > > <RULES DEFAULT="MARKUP" HIGHLIGHT_DIGITS="FALSE" NO_WORD_SEP=".-_:" > > SET="TAGS"> > > > > <!-- Assume 'xsl' prefix for XSLT elements --> > > <SEQ DELEGATE="XSLTAGS" TYPE="LABEL">xsl:</SEQ> > > > > <!-- Highlight all AVTs in result attribute values. XPaths in > > extension elements are not highlighted. --> > > <SPAN TYPE="MARKUP" DELEGATE="AVT"> > > <BEGIN>"</BEGIN> > > <END>"</END> > > </SPAN> > > <SPAN TYPE="MARKUP" DELEGATE="AVT"> > > <BEGIN>'</BEGIN> > > <END>'</END> > > </SPAN> > > > > <!-- Namespace declarations --> > > <SEQ TYPE="OPERATOR">xmlns:</SEQ> > > <!-- Default namespace declaration. Not really used in XSLT --> > > <SEQ TYPE="OPERATOR">xmlns</SEQ> > > > > <!-- Namespace prefixes --> > > <MARK_PREVIOUS EXCLUDE_MATCH="FALSE" TYPE="LABEL">:</MARK_PREVIOUS> > > > > </RULES> > > > > <!-- AVTs --> > > <RULES DEFAULT="KEYWORD2" HIGHLIGHT_DIGITS="FALSE" > > NO_WORD_SEP=".-_:" SET="AVT"> > > > > <!-- Literal curly braces ({}) must be written as {{ or }} --> > > <SEQ>{{</SEQ> > > <SEQ>}}</SEQ><!-- Does nothing. Is overridden by the SPAN below. > > --> > > > > <!-- The AVT itself --> > > <SPAN DELEGATE="XPATH" TYPE="OPERATOR"> > > <BEGIN>{</BEGIN> > > <END>}</END> > > </SPAN> > > > > <!-- Entity references --> > > <SPAN TYPE="LITERAL3" NO_WORD_BREAK="TRUE"> > > <BEGIN>&</BEGIN> > > <END>;</END> > > </SPAN> > > > > </RULES> > > > > <!-- XSLT tags --> > > <RULES DEFAULT="MARKUP" HIGHLIGHT_DIGITS="FALSE" NO_WORD_SEP=".-_:" > > SET="XSLTAGS"> > > > > <!-- If we spot something that looks like an AVT, assume it is. > > Lazy, I know... --> > > <SPAN TYPE="MARKUP" DELEGATE="AVT"> > > <BEGIN>"</BEGIN> > > <END>"</END> > > </SPAN> > > <SPAN TYPE="MARKUP" DELEGATE="AVT"> > > <BEGIN>'</BEGIN> > > <END>'</END> > > </SPAN> > > > > <!-- XSLT attributes that contains XPath expressions or match > > patterns --> > > <!-- count --> > > <SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="c" DELEGATE="XPATH"> > > <BEGIN>count[[:space:]]*=[[:space:]]*"</BEGIN> > > <END>"</END> > > </SPAN_REGEXP> > > <SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="c" DELEGATE="XPATH"> > > <BEGIN>count[[:space:]]*=[[:space:]]*'</BEGIN> > > <END>'</END> > > </SPAN_REGEXP> > > <!-- from --> > > <SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="f" DELEGATE="XPATH"> > > <BEGIN>from[[:space:]]*=[[:space:]]*"</BEGIN> > > <END>"</END> > > </SPAN_REGEXP> > > <SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="f" DELEGATE="XPATH"> > > <BEGIN>from[[:space:]]*=[[:space:]]*'</BEGIN> > > <END>'</END> > > </SPAN_REGEXP> > > <!-- group-adjacent --> > > <SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="g" DELEGATE="XPATH"> > > <BEGIN>group-adjacent[[:space:]]*=[[:space:]]*"</BEGIN> > > <END>"</END> > > </SPAN_REGEXP> > > <SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="g" DELEGATE="XPATH"> > > <BEGIN>group-adjacent[[:space:]]*=[[:space:]]*'</BEGIN> > > <END>'</END> > > </SPAN_REGEXP> > > <!-- group-by --> > > <SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="g" DELEGATE="XPATH"> > > <BEGIN>group-by[[:space:]]*=[[:space:]]*"</BEGIN> > > <END>"</END> > > </SPAN_REGEXP> > > <SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="g" DELEGATE="XPATH"> > > <BEGIN>group-by[[:space:]]*=[[:space:]]*'</BEGIN> > > <END>'</END> > > </SPAN_REGEXP> > > > === message truncated === > > > __________________________________ > Do you Yahoo!? > Yahoo! SiteBuilder - Free, easy-to-use web site design software > http://sitebuilder.yahoo.com > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf -- Slava Pestov ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf -- ----------------------------------------------- jEdit Users' List jEd...@li... https://lists.sourceforge.net/lists/listinfo/jedit-users |