p:namespace-delete (3.0) 
Deletes namespaces from a document.
<p:declare-step type="p:namespace-delete"> <input port="source" primary="true" content-types="xml html" sequence="false"/> <output port="result" primary="true" content-types="xml html" sequence="false"/> <option name="prefixes" as="xs:string" required="true"/> </p:declare-step>
The p:namespace-delete step deletes namespaces, for which the prefixes are listed in the prefixes option, from elements and attributes
in the document appearing on its source. The resulting document appears on the result port.
Ports:
Port | Type | Primary? | Content types | Seq? | Description |
|---|---|---|---|---|---|
|
|
|
|
| The document to delete the namespaces from. |
|
|
|
|
| The resulting document |
Options:
The p:namespace-delete step takes the value of its prefixes option, which must be a whitespace separated list of namespace-prefixes,
and finds out which namespaces are associated with these prefixes. These namespace prefixes must be defined in the pipeline. It then uses this
list to delete these namespaces from elements and attributes in the document appearing on the source port. Elements and attributes
that were in one of these namespaces are now in the no-namespace. The resulting document appears on the result port.
Note that matching is done on namespace name, not on namespace-prefix. This means that the prefix
as used in the prefixes option might be different from the one used in the document to delete the namespace from. See the
Basic usage with different namespace-prefixes example.
The following example deletes the #myconfig namespace, associated with the prefix con, from the source
document.
Source document:
<config xmlns:con="#myconfig" con:status="special"> <con:thing>button</con:thing> </config>
Pipeline document:
<p:declare-step xmlns:con="#myconfig" xmlns:p="http://www.w3.org/ns/xproc" version="3.0"> <p:input port="source"/> <p:output port="result"/> <p:namespace-delete prefixes="con"/> </p:declare-step>
Result document:
<config status="special"> <thing>button</thing> </config>
The following example again deletes the #myconfig namespace. However, the namespace-prefix used in the pipeline is different
from the one used in the source document.
Source document:
<config xmlns:con="#myconfig" con:status="special"> <con:thing>button</con:thing> </config>
Pipeline document:
<p:declare-step xmlns:ns1="#myconfig" xmlns:p="http://www.w3.org/ns/xproc" version="3.0"> <p:input port="source"/> <p:output port="result"/> <p:namespace-delete prefixes="ns1"/> </p:declare-step>
Result document:
<config status="special"> <thing>button</thing> </config>
p:namespace-delete preserves all document-properties of the document(s) appearing on its source port.
Error code | Description |
|---|---|
It is a dynamic error if any prefix is not in-scope at the point where the | |
It is a dynamic error if a namespace is to be removed from an attribute and the element already has an attribute with the resulting name.
For instance, removing the namespace with the |
This description of the p:namespace-delete step is for XProc version: 3.0. This is a required step (an XProc 3.0 processor must support this).
The formal specification for the p:namespace-delete step can be found here.
The p:namespace-delete step is part of categories:
The p:namespace-delete step is also present in version:
3.1.