you can avoid putting the string in an attribute value template, as
Syd Bauman just said, or within an AVT use {{ to denote a {
David
On 19 July 2017 at 14:01, Syd Bauman s(_dot_)bauman(_at_)northeastern(_dot_)edu
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
How about using XSLT constructors, so the part of interest is just a
string?
<xsl:element name="pattern" namespace="http://www.w3.org/2001/XMLSchema">
<xsl:attribute name="value">
<xsl:text>[a-z\{\}]*</xsl:text>
</xsl:attribute>
</xsl:element>
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\{\ }]*" />
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
--~--