namespaces

namespaces - interface for the XSLT namespace handling

set of function easing the processing and generation of namespace nodes in XSLT.

Author(s): Daniel Veillard

Synopsis

#define UNDEFINED_DEFAULT_NS;
xmlNsPtr	xsltCopyNamespace	(xsltTransformContextPtr ctxt, 
xmlNodePtr elem,
xmlNsPtr ns); xmlNsPtr xsltCopyNamespaceList (xsltTransformContextPtr ctxt,
xmlNodePtr node,
xmlNsPtr cur); void xsltFreeNamespaceAliasHashes (xsltStylesheetPtr style); xmlNsPtr xsltGetNamespace (xsltTransformContextPtr ctxt,
xmlNodePtr cur,
xmlNsPtr ns,
xmlNodePtr out); xmlNsPtr xsltGetPlainNamespace (xsltTransformContextPtr ctxt,
xmlNodePtr cur,
xmlNsPtr ns,
xmlNodePtr out); xmlNsPtr xsltGetSpecialNamespace (xsltTransformContextPtr ctxt,
xmlNodePtr invocNode,
const xmlChar * nsName,
const xmlChar * nsPrefix,
xmlNodePtr target); void xsltNamespaceAlias (xsltStylesheetPtr style,
xmlNodePtr node);

Description

Details

Macro UNDEFINED_DEFAULT_NS

#define UNDEFINED_DEFAULT_NS;

Special value for undefined namespace, internal


xsltCopyNamespace ()

xmlNsPtr	xsltCopyNamespace	(xsltTransformContextPtr ctxt, 
xmlNodePtr elem,
xmlNsPtr ns)

Copies a namespace node (declaration). If @elem is not NULL, then the new namespace will be declared on @elem.

ctxt:a transformation context
elem:the target element node
ns:the namespace node
Returns:a new xmlNsPtr, or NULL in case of an error.

xsltCopyNamespaceList ()

xmlNsPtr	xsltCopyNamespaceList	(xsltTransformContextPtr ctxt, 
xmlNodePtr node,
xmlNsPtr cur)

Do a copy of an namespace list. If @node is non-NULL the new namespaces are added automatically. This handles namespaces aliases. This function is intended only for *internal* use at transformation-time for copying ns-declarations of Literal Result Elements. Called by: xsltCopyTreeInternal() (transform.c) xsltShallowCopyElem() (transform.c) REVISIT: This function won't be used in the refactored code.

ctxt:a transformation context
node:the target node
cur:the first namespace
Returns:a new xmlNsPtr, or NULL in case of error.

xsltFreeNamespaceAliasHashes ()

void	xsltFreeNamespaceAliasHashes	(xsltStylesheetPtr style)

Free up the memory used by namespaces aliases

style:an XSLT stylesheet

xsltGetNamespace ()

xmlNsPtr	xsltGetNamespace	(xsltTransformContextPtr ctxt, 
xmlNodePtr cur,
xmlNsPtr ns,
xmlNodePtr out)

Find a matching (prefix and ns-name) ns-declaration for the requested @ns->prefix and @ns->href in the result tree. If none is found then a new ns-declaration will be added to @resultElem. If, in this case, the given prefix is already in use, then a ns-declaration with a modified ns-prefix be we created. Called by: - xsltCopyPropList() (*not* anymore) - xsltShallowCopyElement() - xsltCopyTreeInternal() (*not* anymore) - xsltApplySequenceConstructor() (*not* in the refactored code), - xsltElement() (*not* anymore)

ctxt:a transformation context
cur:the input node
ns:the namespace
out:the output node (or its parent)
Returns:a namespace declaration or NULL in case of namespace fixup failures or API or internal errors.

xsltGetPlainNamespace ()

xmlNsPtr	xsltGetPlainNamespace	(xsltTransformContextPtr ctxt, 
xmlNodePtr cur,
xmlNsPtr ns,
xmlNodePtr out)

Obsolete. *Not* called by any Libxslt/Libexslt function. Exaclty the same as xsltGetNamespace().

ctxt:a transformation context
cur:the input node
ns:the namespace
out:the result element
Returns:a namespace declaration or NULL in case of namespace fixup failures or API or internal errors.

xsltGetSpecialNamespace ()

xmlNsPtr	xsltGetSpecialNamespace	(xsltTransformContextPtr ctxt, 
xmlNodePtr invocNode,
const xmlChar * nsName,
const xmlChar * nsPrefix,
xmlNodePtr target)

Find a matching (prefix and ns-name) ns-declaration for the requested @nsName and @nsPrefix in the result tree. If none is found then a new ns-declaration will be added to @resultElem. If, in this case, the given prefix is already in use, then a ns-declaration with a modified ns-prefix be we created. Note that this function's priority is to preserve ns-prefixes; it will only change a prefix if there's a namespace clash. If both @nsName and @nsPrefix are NULL, then this will try to "undeclare" a default namespace by declaring an xmlns="".

ctxt:the transformation context
invocNode:the invoking node; e.g. a literal result element/attr; only used for error reports
nsName:the namespace name (or NULL)
nsPrefix:the suggested namespace prefix (or NULL)
target:the result element on which to anchor a namespace
Returns:a namespace declaration or NULL.

xsltNamespaceAlias ()

void	xsltNamespaceAlias		(xsltStylesheetPtr style, 
xmlNodePtr node)

Read the stylesheet-prefix and result-prefix attributes, register them as well as the corresponding namespace.

style:the XSLT stylesheet
node:the xsl:namespace-alias node