Package net.sf.saxon.style
Class XSLStylesheet
- All Implemented Interfaces:
Source
,SourceLocator
,LocationProvider
,SaxonLocator
,Container
,FingerprintedNode
,Item
,NodeInfo
,ValueRepresentation
,InstructionInfo
,Locator
An xsl:stylesheet or xsl:transform element in the stylesheet.
Note this element represents a stylesheet module, not necessarily the whole stylesheet.
Note this element represents a stylesheet module, not necessarily the whole stylesheet.
-
Field Summary
FieldsFields inherited from class net.sf.saxon.style.StyleElement
defaultCollationName, defaultXPathNamespace, extensionNamespaces, REPORT_ALWAYS, REPORT_IF_INSTANTIATED, REPORT_UNLESS_FALLBACK_AVAILABLE, REPORT_UNLESS_FORWARDS_COMPATIBLE, reportingCircumstances, staticContext, validationError, version
Fields inherited from class net.sf.saxon.tree.ElementWithAttributes
attributeList, namespaceList
Fields inherited from class net.sf.saxon.tree.ElementImpl
nameCode, root
Fields inherited from class net.sf.saxon.tree.ParentNodeImpl
sequence
Fields inherited from class net.sf.saxon.tree.NodeImpl
index, NODE_LETTER, parent
Fields inherited from interface net.sf.saxon.om.NodeInfo
ALL_NAMESPACES, EMPTY_NAMESPACE_LIST, IS_DTD_TYPE, IS_NILLED, LOCAL_NAMESPACES, NO_NAMESPACES
Fields inherited from interface net.sf.saxon.om.ValueRepresentation
EMPTY_VALUE_ARRAY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addImportedSchema
(String targetNamespace) int
allocateGlobalSlot
(int fingerprint) Allocate a slot number for a global variable or parametervoid
allocatePatternSlots
(int n) Ensure there is enough space for local variables or parameters when evaluating the match pattern of template rulesboolean
Determine whether the use of non-primitive built-in types has been enabled for this stylesheet (This is relevant only for Saxon-B: such types are always permitted in Saxon-SA)compile
(Executable exec) Dummy compile() method to satisfy the interfaceCompile the stylesheet to create an executable.protected void
declareJavaClass
(String uri, Class theClass) Declare a URI that maps to a Java class containing extension functionsprotected void
declareXQueryFunction
(XQueryFunction function) Declare an imported XQuery functionprotected Comparator
findCollation
(String name) Find a named collation.gatherOutputProperties
(int fingerprint) Create an output properties object representing the xsl:output elements in the stylesheet.getCharacterMap
(int fingerprint) Get a character map, identified by the fingerprint of its name.Get the collation mapGet the DecimalFormatManager which handles decimal-format definitionsGet the name of the default collationint
Get the value of the default validation attributeGet the run-time Executable objectGet the function library.getGlobalVariable
(int fingerprint) Get the global variable or parameter with a given fingerprint (taking precedence rules into account)protected HashSet
Get the StyleSheet that included or imported this one.int
Get the value of the input-type-annotations attribute, for this module combined with that of all included/imported modules.int
Get the value of the input-type-annotations attribute, for this module alone.Get the KeyManager which handles key definitionsGet the locationMap objectint
Get the minimum import precedence of this stylesheet, that is, the lowest precedence of any stylesheet imported by this oneprotected int
getNamespaceAlias
(short uriCode) Get the declared namespace alias for a given namespace URI code if there is one.int
Get the import precedence of this stylesheetGet the owning PreparedStylesheet objectGet the RuleManager which handles template rulesprotected Mode
Get the rules determining which nodes are to be stripped from the treeGet the namepool to be used at run-time, this namepool holds the names used in all XPath expressions and patternsGet the top level elements in this stylesheet, after applying include/importprotected boolean
protected boolean
isAliasResultNamespace
(short uriCode) Determine if a namespace is included in the result-prefix of a namespace-aliasprotected boolean
isImportedSchema
(String targetNamespace) Get an imported schema with a given namespacevoid
Prepare the attributes on the stylesheet elementvoid
Preprocess does all the processing possible before the source document is available.void
Process the attributes of every node in the stylesheetvoid
setCollation
(String name, Comparator collation) Register a named collation (actually a Comparator)void
setImporter
(XSLStylesheet importer) Set the StyleSheet that included or imported this one.void
setInputTypeAnnotations
(int annotations) Set the value of the input-type-annotations attribute, for this module combined with that of all included/imported modules.void
setMinImportPrecedence
(int precedence) Set the minimum import precedence of this stylesheet, that is, the lowest precedence of any stylesheet imported by this onevoid
setNeedsDynamicOutputProperties
(boolean b) Set that this stylesheet needs dynamic output propertiesvoid
setPrecedence
(int prec) Set the import precedence of this stylesheetvoid
Create link to the owning PreparedStylesheet objectvoid
Indicate that this stylesheet was included (by its "importer") using an xsl:include statement as distinct from xsl:importvoid
Process xsl:include and xsl:import elements.boolean
Determine whether this stylesheet does any whitespace strippingvoid
validate()
Validate this elementMethods inherited from class net.sf.saxon.style.StyleElement
allocateLocationId, allocateSlots, backwardsCompatibleModeIsEnabled, bindVariable, checkEmpty, checkSortComesFirst, checkTopLevel, checkUnknownAttribute, checkWithinTemplate, compileError, compileError, compileError, compileSequenceConstructor, compileWarning, definesExcludedNamespace, definesExtensionElement, fallbackProcessing, fixupReferences, forwardsCompatibleModeIsEnabled, getAttributeSets, getAttributeValue, getCommonChildItemType, getConstructType, getContainingSlotManager, getContainingStylesheet, getDefaultXPathNamespace, getHostLanguage, getLastChildInstruction, getLineNumber, getLineNumber, getLocationProvider, getNamespaceResolver, getObjectFingerprint, getObjectNameCode, getPrincipalStylesheet, getProperties, getProperty, getReturnedItemType, getSchemaType, getStaticContext, getStylesheetFunction, getSystemId, getTypeAnnotation, getVersion, getWithParamInstructions, isExcludedNamespace, isExplaining, isExtensionNamespace, isInstruction, isPermittedChild, issueWarning, issueWarning, isTopLevel, makeAttributeValueTemplate, makeExpression, makeNameCode, makeNamespaceContext, makePattern, makeSequenceType, makeSortKeys, makeTraceInstruction, markTailCalls, mayContainFallback, mayContainSequenceConstructor, postValidate, processAttributes, processDefaultCollationAttribute, processDefaultXPathNamespaceAttribute, processExcludedNamespaces, processExtensionElementAttribute, processVersionAttribute, replaceSubExpression, reportAbsence, setLineNumber, setObjectNameCode, setValidationError, substituteFor, typeCheck, typeCheck, undeclaredNamespaceError, validateChildren, validateSubtree
Methods inherited from class net.sf.saxon.tree.ElementWithAttributes
copy, getAttributeList, getAttributeValue, getDeclaredNamespaces, getInScopeNamespaceCodes, getPrefixForURI, getURICodeForPrefix, getURIForPrefix, initialise, iteratePrefixes, sendNamespaceDeclarations, setNamespaceDeclarations
Methods inherited from class net.sf.saxon.tree.ElementImpl
generateId, getBaseURI, getDocumentRoot, getNameCode, getNodeKind, getRoot, getSystemId, setNameCode, setSystemId
Methods inherited from class net.sf.saxon.tree.ParentNodeImpl
addChild, compact, enumerateChildren, getFirstChild, getLastChild, getNthChild, getSequenceNumber, getStringValue, getStringValueCS, hasChildNodes, useChildrenArray
Methods inherited from class net.sf.saxon.tree.NodeImpl
atomize, compareOrder, equals, getColumnNumber, getConfiguration, getDisplayName, getDocumentNumber, getFingerprint, getLocalPart, getNamePool, getNextInDocument, getNextSibling, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getPublicId, getTypeAnnotation, getTypedValue, getURI, hashCode, isSameNodeInfo, iterateAxis, iterateAxis
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.sf.saxon.trace.InstructionInfo
getSystemId
Methods inherited from interface org.xml.sax.Locator
getColumnNumber, getPublicId
Methods inherited from interface javax.xml.transform.SourceLocator
getColumnNumber, getPublicId, getSystemId
-
Field Details
-
exec
Executable exec -
ANNOTATION_STRIP
public static final int ANNOTATION_STRIP- See Also:
-
ANNOTATION_PRESERVE
public static final int ANNOTATION_PRESERVE- See Also:
-
-
Constructor Details
-
XSLStylesheet
public XSLStylesheet()
-
-
Method Details
-
setPreparedStylesheet
Create link to the owning PreparedStylesheet object -
getPreparedStylesheet
Get the owning PreparedStylesheet object- Overrides:
getPreparedStylesheet
in classStyleElement
- Returns:
- the PreparedStylesheet to which this stylesheet element belongs
-
getExecutable
Get the run-time Executable object- Specified by:
getExecutable
in interfaceContainer
- Overrides:
getExecutable
in classStyleElement
-
getFunctionLibrary
Get the function library. Available only on the principal stylesheet module -
getLocationMap
Get the locationMap object -
getTargetNamePool
Get the namepool to be used at run-time, this namepool holds the names used in all XPath expressions and patterns- Overrides:
getTargetNamePool
in classStyleElement
-
getRuleManager
Get the RuleManager which handles template rules -
getStripperRules
Get the rules determining which nodes are to be stripped from the tree -
stripsWhitespace
public boolean stripsWhitespace()Determine whether this stylesheet does any whitespace stripping -
getKeyManager
Get the KeyManager which handles key definitions -
getDecimalFormatManager
Get the DecimalFormatManager which handles decimal-format definitions -
getCollationMap
Get the collation map -
setCollation
Register a named collation (actually a Comparator) -
findCollation
Find a named collation. Note this method should only be used at compile-time, before declarations have been pre-processed. After that time, use getCollation().- Parameters:
name
- identifies the name of the collation required; null indicates that the default collation is required- Returns:
- null if the collation is not found
-
getDefaultCollationName
Get the name of the default collation- Overrides:
getDefaultCollationName
in classStyleElement
-
getCharacterMap
Get a character map, identified by the fingerprint of its name. Search backwards through the stylesheet.- Parameters:
fingerprint
- The fingerprint of the character map name, in the target namepool.- Returns:
- the identified character map, or null if not found
-
setPrecedence
public void setPrecedence(int prec) Set the import precedence of this stylesheet -
getPrecedence
public int getPrecedence()Get the import precedence of this stylesheet- Overrides:
getPrecedence
in classStyleElement
-
getMinImportPrecedence
public int getMinImportPrecedence()Get the minimum import precedence of this stylesheet, that is, the lowest precedence of any stylesheet imported by this one -
setMinImportPrecedence
public void setMinImportPrecedence(int precedence) Set the minimum import precedence of this stylesheet, that is, the lowest precedence of any stylesheet imported by this one -
setImporter
Set the StyleSheet that included or imported this one. -
getImporter
Get the StyleSheet that included or imported this one.- Returns:
- null if this is the principal stylesheet
-
setWasIncluded
public void setWasIncluded()Indicate that this stylesheet was included (by its "importer") using an xsl:include statement as distinct from xsl:import -
getTopLevel
Get the top level elements in this stylesheet, after applying include/import -
allocateGlobalSlot
public int allocateGlobalSlot(int fingerprint) Allocate a slot number for a global variable or parameter -
allocatePatternSlots
public void allocatePatternSlots(int n) Ensure there is enough space for local variables or parameters when evaluating the match pattern of template rules -
prepareAttributes
Prepare the attributes on the stylesheet element- Specified by:
prepareAttributes
in classStyleElement
- Throws:
XPathException
-
getDefaultValidation
public int getDefaultValidation()Get the value of the default validation attribute -
getInputTypeAnnotationsAttribute
Get the value of the input-type-annotations attribute, for this module alone. The value is an or-ed combination of the two bitsANNOTATION_STRIP
andANNOTATION_PRESERVE
- Throws:
XPathException
-
getInputTypeAnnotations
public int getInputTypeAnnotations()Get the value of the input-type-annotations attribute, for this module combined with that of all included/imported modules. The value is an or-ed combination of the two bitsANNOTATION_STRIP
andANNOTATION_PRESERVE
-
setInputTypeAnnotations
Set the value of the input-type-annotations attribute, for this module combined with that of all included/imported modules. The value is an or-ed combination of the two bitsANNOTATION_STRIP
andANNOTATION_PRESERVE
- Throws:
XPathException
-
allowsAllBuiltInTypes
public boolean allowsAllBuiltInTypes()Determine whether the use of non-primitive built-in types has been enabled for this stylesheet (This is relevant only for Saxon-B: such types are always permitted in Saxon-SA) -
getNamespaceAlias
protected int getNamespaceAlias(short uriCode) Get the declared namespace alias for a given namespace URI code if there is one. If there is more than one, we get the last.- Parameters:
uriCode
- The code of the uri used in the stylesheet.- Returns:
- The namespace code to be used (prefix in top half, uri in bottom half): return -1 if no alias is defined
-
isAliasResultNamespace
protected boolean isAliasResultNamespace(short uriCode) Determine if a namespace is included in the result-prefix of a namespace-alias -
validate
Validate this element- Overrides:
validate
in classStyleElement
- Throws:
XPathException
-
preprocess
Preprocess does all the processing possible before the source document is available. It is done once per stylesheet, so the stylesheet can be reused for multiple source documents. The method is called only on the XSLStylesheet element representing the principal stylesheet module- Throws:
XPathException
-
spliceIncludes
Process xsl:include and xsl:import elements.- Throws:
XPathException
-
hasNamespaceAliases
protected boolean hasNamespaceAliases() -
processAllAttributes
Process the attributes of every node in the stylesheet- Overrides:
processAllAttributes
in classStyleElement
- Throws:
XPathException
-
getGlobalVariable
Get the global variable or parameter with a given fingerprint (taking precedence rules into account) -
setNeedsDynamicOutputProperties
public void setNeedsDynamicOutputProperties(boolean b) Set that this stylesheet needs dynamic output properties -
gatherOutputProperties
Create an output properties object representing the xsl:output elements in the stylesheet.- Parameters:
fingerprint
- The name of the output format required. If set to -1, gathers information for the unnamed output format- Returns:
- the Properties object containing the details of the specified output format
- Throws:
XPathException
- if a named output format does not exist in the stylesheet
-
declareXQueryFunction
Declare an imported XQuery function- Throws:
XPathException
-
declareJavaClass
Declare a URI that maps to a Java class containing extension functions -
isImportedSchema
Get an imported schema with a given namespace- Parameters:
targetNamespace
- The target namespace of the required schema. Supply an empty string for the default namespace- Returns:
- the required Schema, or null if no such schema has been imported
-
addImportedSchema
-
getImportedSchemaTable
-
compileStylesheet
Compile the stylesheet to create an executable.- Throws:
XPathException
-
compile
Dummy compile() method to satisfy the interface- Specified by:
compile
in classStyleElement
- Returns:
- either a ComputedExpression, or null. The value null is returned when compiling an instruction that returns a no-op, or when compiling a top-level object such as an xsl:template that compiles into something other than an instruction.
-