Try OpenEdge Now
skip to main content
ABL Reference
Handle Attributes and Methods Reference : CREATE-NODE-NAMESPACE( ) method
 

CREATE-NODE-NAMESPACE( ) method

Creates a namespace-aware XML node whose name can be either a single string y or an x:y combination.
Note: To ensure consistency across all nodes in an XML document, use either the CREATE-NODE-NAMESPACE( ) method or the CREATE-NODE( ) method to build an XML document; do not use both methods within a single document.
Return type: LOGICAL
Applies to: X-document object handle

Syntax

CREATE-NODE-NAMESPACE
  ( x-node-handle , namespace-uri , qualified-name , type )
x-node-handle
A valid X-noderef handle to use for the new namespace-aware XML node.
namespace-uri
A character expression representing the namespace Uniform Resource Identifier (URI). The namespace-uri must be unique and persistent. Although the namespace-uri may be an HTTP URL, there is no guarantee that it points to a retrievable resource. It is only a name and care should be taken if you use this name for other purposes.
If the character expression evaluates to either the empty string ("") or the Unknown value (?), no namespace is associated with the element.
qualified-name
A character expression representing the name of the node, optionally qualified with a prefix including a colon (for example, prefix:node-name). Unless you are using a default namespace, a prefix is required and should be set to the prefix specified when you declared the namespace using the xmlns attribute.
type
A character expression representing the node's SUBTYPE, which will be either ELEMENT or ATTRIBUTE.
The following code fragment illustrates how to create a namespace-aware node in an XML document using either a specific namespace or the default namespace:
. . .
/* Look for a colonized name in rootNodeName. */
found = INDEX(rootNodeName, ":").
IF found > 0 THEN DO:
  /* Namespace declarations are special kinds of attributes that belong in
     the http://www.w3.org/2000/xmlns/ namespace.*/

 errStat = hDocument:CREATE-NODE-NAMESPACE(hNsDecl,
  "http://www.w3.org/2000/xmlns/", "xmlns:" +
  SUBSTRING(rootNodeName, 1, found - 1), "attribute").
END.

ELSE DO:
 /* Use the default namespace, which does not need a namespace declaration
     prefix, and assign it to the http://www.w3.org/2000/xmlns/ namespace.*/

 errStat = hDocument:CREATE-NODE-NAMESPACE(hNsDecl,
  "http://www.w3.org/2000/xmlns/", "xmlns", "attribute").
END.

IF NOT errStat THEN LEAVE.

/* Set the value of the namespace attribute to the namespace URI. */
hNsDecl:NODE-VALUE = namespaceURI.
. . .