Hi Folks,
I have an XML Schema that needs some complex regular expressions. I have been using <!ENTITY> to construct the regexes. See below. I find it pretty hard to debug these regular expressions. Is there a better way to construct regexes? /Roger
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:schema [
<!ENTITY Language-Tag "(&lang-tag;)|(&private-use;)|(&grandfathered;)">
<!ENTITY lang-tag "(&language;)(-&script;)?(-®ion;)?(-&variant;)*(-& extension;)*(-&private-use;)?" >
<!ENTITY language "([&ALPHA;]{2,3}(-&extlang;)?)|([&ALPHA;]{4})|([&ALPHA;]{5, 8})">
<!ENTITY extlang "[&ALPHA;]{3}(-[&ALPHA;]{3}){0,2}">
<!ENTITY script "[&ALPHA;]{4}">
<!ENTITY region "([&ALPHA;]{2})|([&DIGIT;]{3})">
<!ENTITY variant "([&alphanum;]{5,8})|([&DIGIT;][&alphanum;]{3})">
<!ENTITY extension "((&singleton;)(-[&alphanum;]{2,8})+)">
<!ENTITY singleton "([&DIGIT;])|([A-W])|([Y-Z])|([a-w])|(y-z)">
<!ENTITY private-use "x(-[&alphanum;]{1,8})+">
<!ENTITY grandfathered "(&irregular;)|(®ular;)">
<!ENTITY irregular "(en-GB-oed)|(i-ami)|(i-bnn)|(i-default)|(i-enochian)|(i- hak)|(i-klingon)|(i-lux)|(i- mingo)|(i-navajo)|(i-pwn)|(i- tao)|(i-tay)|(i-tsu)|(sgn-BE- FR)|(sgn-BE-NL)|(sgn-CH-DE)">
<!ENTITY regular "(art-lojban)|(cel-gaulish)|(no-bok)|(no-nyn)|(zh-guoyu)|( zh-hakka)|(zh-min)|(zh-min- nan)|(zh-xiang)">
<!ENTITY ALPHA "a-zA-Z">
<!ENTITY DIGIT "0-9">
<!ENTITY alphanum "(&ALPHA;)|(&DIGIT;)">
]>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema ">
<xs:element name="language">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="&Language-Tag;" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>