xsl-list
[Top] [All Lists]

[xsl] XSLT program that generates XSD, the XSD has a pattern facet, the regex has curly braces, the curly braces are causing me trouble

2017-07-19 07:44:21
Hi Folks,

I am writing an XSLT program that outputs an XML Schema.

The generated XML Schema is to contain a simpleType, with a pattern facet. Its 
regex is to express: zero or more lowercase letters of the English alphabet, 
the left curly brace, and the right curly brace:

<xs:simpleType name="Stuff">
    <xs:restriction base="xs:string">
        <xs:pattern value="[a-z\{\}]*" />
    </xs:restriction>
</xs:simpleType>

The curly braces are special symbols in the regex language, so I escaped them: 
\{ and \}

Interestingly, the curly braces are also special symbols in the XSLT language. 
That's causing me problems.

Below is my XSLT program. It doesn't work  - an error is generated because of 
the curly braces. Note that replacing the curly braces with their character 
references also failed:

<xs:pattern value="[a-z\&#x7B;\ &#x7D;]*" />

What's the right way to do this?  /Roger

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
        xmlns:xs="http://www.w3.org/2001/XMLSchema";
        exclude-result-prefixes="xs"
        version="2.0">
    
    <xsl:output method="xml" />
    
    <xsl:template match="/">
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>
            <xs:element name="Test" type="Stuff" />
            <xs:simpleType name="Stuff">
                <xs:restriction base="xs:string">
                    <xs:pattern value="[a-z\{\}]*" />
                </xs:restriction>
            </xs:simpleType>
        </xs:schema>
    </xsl:template>
    
</xsl:stylesheet> 
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>