XMLNSC: Using field types
The XMLNSC parser sets the field type on every syntax element that it creates.
The field type indicates the type of XML construct that
the element represents. The XMLNSC parser uses the field type when
writing a message tree. The field type can be set by using ESQL or Java™ to control the output XML.
The field types that are used by the XMLNSC parser must be referenced
by using constants with names that are prefixed by 'XMLNSC.'
Tip: Field type constants that have the prefix 'XML.' are for
use with the XMLNS and XML parsers only, and are not valid with the
XMLNSC or MRM parsers.
Field types for creating syntax elements
Use the following field type constants to create syntax elements in the message tree. The XMLNSC parser uses these values when creating a message tree from an input message.XML construct | XMLNSC Field Type constant | Value |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Field types for path expressions ( generic field types )
Use the following field type constants when querying the message tree by using a path expression; for example:SET str = FIELDVALUE(InputRoot.e1.(XMLNSC.Attribute)attr1)
It
is good practice to specify field types when querying a message tree
built by the XMLNSC parser. This makes your ESQL code more specific
and more readable, and it avoids incorrect results in some cases.
However, care is required when choosing which field type constant
to use. When you use the XMLNSC parser, use a generic field type constant
when querying the message tree. This allows your path expression to
tolerate variations in the input XML. The generic field type constants are listed in the following table:
XML construct | XMLNSC Field Type constant | Purpose |
---|---|---|
Tag | XMLNSC.Element | Matches any tag, whether it contains child tags (XMLNSC.Folder) or a value (XMLNSC.Field ) |
Element | XMLNSC.Field | Matches a tag which contains normal text, CData, or a mixture of both. Does not match tags which contain child tags. |
Attribute | XMLNSC.Attribute | Matches single-quoted and double-quoted attributes |
Mixed content | XMLNSC.Value | Matches normal text, CData, or a mixture of both |
XML Declaration | XMLNSC.NamespaceDecl | Matches single- and double-quoted declarations |
InputRoot.e1.(XMLNSC.DoubleAttribute)attrName
your
path expression does not match a single-quoted attribute. If you use
the generic field type constant XMLNSC.Attribute,
your message flow works with either single-quoted or double-quoted
attributes. Note that you should always use the field type constants and not their numeric values.
Field types for controlling output format
The following field types are provided for XML Schema and base64 support. Do not use these field type constants in path expressions; use them in conjunction with XMLNSC.Attribute and XMLNSC.Field to indicate the required output format for DATE and BLOB values. See XMLNSC: XML Schema support for further information.XMLNSC Field Type constant | Purpose | Value |
---|---|---|
XMLNSC.gYear | The value must be a DATE. If the field type includes this value, the DATE value is produced by using the XML Schema gYear format. | 0x00000010 |
XMLNSC.gYearMonth | The value must be a DATE. If the field type includes this value, the DATE value is produced by using the XML Schema gYearMonth format. | 0x00000040 |
XMLNSC.gMonth | The value must be a DATE. If the field type includes this value, the DATE value is produced by using the XML Schema gMonth format. | 0x00000020 |
XMLNSC.gMonthDay | The value must be a DATE. If the field type includes this value, the DATE value is produced by using the XML Schema gMonthDay format. | 0x00000050 |
XMLNSC.gDay | The value must be a DATE. If the field type includes this value, the DATE value is produced by using the XML Schema gDay format. | 0x00000030 |
XMLNSC.base64Binary | The value must be a BLOB. The value is produced with base64 encoding. | 0x00000060 |
XMLNSC.List | The element must be XMLNSC.Attribute or XMLNSC.Field. If the field type includes this value, the values of all child elements in the message tree are produced as a space-separated list. | 0x00000070 |
Field types for direct output
Use the following field types to produce pre-constructed segments of an XML document. Character escaping is not done; therefore, take extra care not to construct a badly-formed output document. Use these constants only after carefully exploring alternative solutions.XMLNSC Field Type constant | Purpose | Value |
---|---|---|
XMLNSC.BitStream | The value of this syntax element must be a BLOB. The value is written directly to the output bit stream. For more information about its usage, see Working with large XML messages. | 0x03000200 |
XMLNSC.AsisElementContent | The value of this syntax element must be CHARACTER. The value is written directly to the output bit stream. No character substitutions are performed. Use this element with care. | 0x03000600 |