XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition (770 page)

BOOK: XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition
2.25Mb size Format: txt, pdf, ePub

XTDE0640

A stylesheet must have no circularities

This describes a range of conditions, for example a global variable being defined in terms of itself, a key being defined in terms of itself, or a global variable being set by calling a function that references the global variable. XSLT processors must detect such errors, either at compile time or at runtime.

XTDE0700

When a template has a parameter that specifies
required=“yes”
, the caller must supply a value

XTDE0820

The name attribute of
xsl:element
must evaluate to a valid lexical QName

In XSLT 1.0 processors were allowed to ignore this error and continue without creating the offending element. In 2.0 it is fatal and must be reported.

XTDE0830

When
xsl:element
has no
namespace
attribute, the QName produced by evaluating the
name
attribute must use a prefix that has been declared in the stylesheet

This is true even if the name is computed at runtime. It's safest to specify the
namespace
attribute on

to avoid this error occuring.

XTDE0835

The
namespace
attribute of
xsl:element
must evaluate to a valid
xs:anyURI

This is a change from XSLT 1.0, which specifically allowed you to use any string as a namespace name. However, the rules for what is a valid
xs:anyURI
are fairly liberal.

XTDE0850

The
name
attribute of
xsl:attribute
must evaluate to a valid lexical QName

See XTDE0820.

XTDE0855

The
name
attribute of
xsl:attribute
must not evaluate to
xmlns.

You can't use

to create namespace declarations. Usually, namespace declarations take care of themselves if you specify the right namespace when creating your elements. On the rare occasions that you need to generate namespaces by hand, use

.

XTDE0860

When
xsl:attribute
has no
namespace
attribute, the QName produced by evaluating the
name
attribute must use a prefix that has been declared

See XTDE0830.

XTDE0865

The
namespace
attribute of
xsl:attribute
must evaluate to a valid
xs:anyURI.

See XTDE0835.

XTDE0905

The
name
attribute of
xsl:processing-instruction
must evaluate to a valid processing instruction name

The name must be a valid
NCName
(no colon allowed), and it must not be
xml
in any combination of upper and lower case. (The XML declaration is not a processing instruction. To control the XML declaration in the result document, use the various attributes of

.)

XTDE0920

The
name
attribute of
xsl:namespace
must evaluate to either a zero-length string or a valid
NCName
other than
xmlns
.

To generate
xmlns=“abc”
, the
name
attribute should be a zero-length string; to generate
xmlns:pfx=“abc”
, it should be
“pfx”
.

XTDE0925

In the result of
xsl:namespace
, the prefix
xml
can be used only with the XML namespace, and vice versa

The XML namespace is automatically in-scope on every element, so you never need to generate it.

XTDE0930

In the result of
xsl:namespace
, the namespace URI must not be a zero-length string

The instruction generates a namespace node, not a namespace declaration or undeclaration. To force a namespace undeclaration to appear, use
[xsl:]inherit-namespaces=“no”
when creating the element, with

.

Other books

A Sail of Two Idiots by Renee Petrillo
Bad Heir Day by Wendy Holden
A Precious Jewel by Mary Balogh
Dancing in the Shadows by Anne Saunders
Trail of Bones by Mark London Williams
The Rifter's Covenant by Sherwood Smith, Dave Trowbridge