XMLNSC: The XML declaration
The XML declaration is represented in the message tree by a syntax element with field type XMLNSC.XMLDeclaration.
If an XML declaration is created by the XMLNSC parser, its
name is ‘XmlDeclaration'. However, when a message tree is being
produced, the name is not important: the XMLNSC parser recognizes
this syntax element by its field type only. The following example
shows a typical declaration:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE s1 PUBLIC "http://www.ibm.com/example.dtd" "example.dtd">
<s1>........</s1>
The XML Declaration has three optional attributes; Version, Standalone, and Encoding. The XMLNSC parser does not define special field types for these attributes. Instead, they are identified by their name, and by their position as a child of the XML Declaration element.
ESQL example code to create an XML declaration
To construct the XML declaration that is shown in the previous example, code the following ESQL statements:CREATE FIRSTCHILD OF OutputRoot.XMLNSC TYPE XMLNSC.XmlDeclaration NAME 'XmlDeclaration';
SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Version = '1.0';
SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Encoding = 'UTF-8';
SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)StandAlone = 'yes';
The
first line is optional; if it is omitted, the XMLNSC.XMLDeclaration
element is automatically created when it is referenced by the second
line.Java example code to create an XML declaration
To construct the XML declaration that is shown in the previous example, write the following Java™ code://Create the XML domain root node
MBElement xmlRoot =
root.createElementAsLastChild(MbXMLNSC.PARSER_NAME);
//Create the XML declaration parent node
MbElement xmlDecl =
xmlRoot.createElementAsFirstChild(MbXMLNSC.XML_DECLARATION);
xmlDecl.setName("XmlDeclaration");
MbElement version =
xmlDecl.CreateElementAsFirstChild(MbXMLNSC.ATTRIBUTE, "Version", "1.0");
MbElement encoding =
xmlDecl.CreateElementAsFirstChild(MbXMLNSC.ATTRIBUTE, "Encoding", "utf-8");
MbElement standalone =
xmlDecl.CreateElementAsFirstChild(MbXMLNSC.ATTRIBUTE, "Standalone", "yes");
Note: In both the ESQL example and the Java example, 'Version', 'StandAlone', and 'Encoding'
can all be written in lowercase.