Der XMLNSC-Parser setzt den Feldtyp in jedem von ihm erstellten Syntaxelement.
Der Feldtyp gibt den Typ des XML-Konstrukts an, den das Element darstellt. Dieser Feldtyp wird vom XMLNSC-Parser beim Schreiben einer Nachrichtenbaumstruktur verwendet. Der Feldtyp kann mit ESQL oder Java™ festgelegt werden, um so die Ausgabe-XML zu steuern.
Auf die vom XMLNSC-Parser verwendeten Feldtypen muss mit Konstanten verwiesen werden, deren Namen das Präfix 'XMLNSC.' vorangestellt ist.
Tipp: Feldtypkonstanten mit dem Präfix 'XML.' dürfen nur für XMLNS- und XML-Parser verwendet werden; bei XMLNSC- oder
MRM-Parsern sind sie ungültig.
Feldtypen für die Erstellung von Syntaxelementen
Für die Erstellung von Syntaxelementen in der Nachrichtenbaumstruktur müssen die folgenden Feldtypkonstanten verwendet werden. Der XMLNSC-Parser verwendet diese Werte bei der Erstellung einer Nachrichtenbaumstruktur anhand einer Eingabenachricht.
XML-Konstrukt |
XMLNSC-Feldtypkonstante |
Wert |
Einfaches Element
|
XMLNSC.Field
XMLNSC.CDataField
|
0x03000000
0x03000001
|
Attribut
|
XMLNSC.SingleAttribute
XMLNSC.Attribute
|
0x03000101
0x03000100
|
Gemischter Inhalt
|
XMLNSC.Value
XMLNSC.CDataValue
|
0x02000000
0x02000001
|
Namespacedeklaration
|
XMLNSC.SingleNamespaceDecl
XMLNSC.NamespaceDecl
|
0x03000102
0x03000103
|
Komplexes Element
|
XMLNSC.Folder
|
0x01000000
|
Integrierte DTD
|
XMLNSC.DocumentType
|
0x01000300
|
XML-Deklaration
|
XMLNSC.XmlDeclaration
|
0x01000400
|
Entitätsverweis
|
XMLNSC.EntityReference
|
0x02000100
|
Entitätsdefinition
|
XMLNSC.SingleEntityDefinition
XMLNSC.EntityDefinition
|
0x03000301
0x03000300
|
Kommentar
|
XMLNSC.Comment
|
0x03000400
|
Verarbeitungsanweisung
|
XMLNSC.ProcessingInstruction
|
0x03000401
|
Feldtypen für Pfadausdruck (generische Feldtypen)
Bei der Abfrage der Nachrichtenbaumstruktur unter Verwendung eines Pfadausdrucks sollten Sie die nachfolgend beschriebenen Feldtypkonstanten verwenden, zum Beispiel:
SET str = FIELDVALUE(InputRoot.e1.(XMLNSC.Attribute)attr1)
Es empfiehlt sich, für die Abfrage einer mit dem XMLNSC-Parser erstellten Nachrichtenbaumstruktur die Feldtypen anzugeben. Dadurch wird der ESQL-Code präziser und verständlicher, außerdem werden auf diese Weise in manchen Fällen falsche Ergebnisse vermieden.
Allerdings sollten Sie darauf achten, welche Feldtypkonstanten verwendet werden. Beim XMLNSC-Parser sollte für die Abfrage der Nachrichtenbaumstruktur eine generische Feldtypkonstante verwendet werden. Dadurch sind beim Pfadausdruck auch Variationen der Eingabe-XML möglich.
Die generischen Feldtypkonstanten sind in der folgenden Tabelle aufgeführt:
XML-Konstrukt |
XMLNSC-Feldtypkonstante |
Zweck |
Tag |
XMLNSC.Element |
Ein beliebiger Tag, der untergeordnete Tags (XMLNSC.Folder) oder einen Wert
(XMLNSC.Field) enthalten kann |
Element |
XMLNSC.Field |
Ein Tag, der normalen Text, CData oder eine Mischung aus beiden
enthält. Tags, die untergeordnete Tags enthalten, sind nicht zulässig. |
Attribut |
XMLNSC.Attribute |
Deckt Attribute in einfachen und doppelten Anführungszeichen ab |
Gemischter Inhalt |
XMLNSC.Value |
Deckt normalen Text und/oder CData ab |
XML-Deklaration |
XMLNSC.NamespaceDecl |
Deckt Deklarationen in einfachen und doppelten Anführungszeichen ab |
Wenn Sie
InputRoot.e1.(XMLNSC.DoubleAttribute)attrName
schreiben, entspricht der Pfadausdruck keinem Attribut in doppelten Anführungszeichen. Bei Verwendung der generischen Feldtypkonstante
XMLNSC.Attribute können im Nachrichtenfluss Attribute in einfachen oder doppelten Anführungszeichen verarbeitet werden.
Sie sollten immer die Feldtypkonstanten, nicht die numerischen Werte verwenden.
Feldtypen zur Steuerung des Ausgabeformats
Zur Unterstützung des XML-Schemas und der base64-Codierung stehen die folgenden Feldtypen bereit.
Diese Feldtypkonstanten sollten nicht in Pfadausdrücken verwendet werden, sondern zusammen mit 'XMLNSC.Attribute' und 'XMLNSC.Field', um das erforderliche Ausgabeformat für DATE- und BLOB-Werte anzugeben. Weitere Informationen finden Sie im Abschnitt
XMLNSC: Unterstützung für XML-Schemas.
XMLNSC-Feldtypkonstante |
Zweck |
Wert |
XMLNSC.gYear |
Der Wert muss ein DATE-Wert sein. Wenn der Feldtyp diesen Wert enthält, wird der DATE-Wert im gYear-Format des XML-Schemas generiert. |
0x00000010 |
XMLNSC.gYearMonth |
Der Wert muss ein DATE-Wert sein. Wenn der Feldtyp diesen Wert enthält, wird der DATE-Wert mit dem gYearMonth-Format des XML-Schemas generiert. |
0x00000040 |
XMLNSC.gMonth |
Der Wert muss ein DATE-Wert sein. Wenn der Feldtyp diesen Wert enthält, muss wird DATE-Wert mit dem gMonth-Format des XML-Schemas generiert. |
0x00000020 |
XMLNSC.gMonthDay |
Der Wert muss ein DATE-Wert sein. Wenn der Feldtyp diesen Wert enthält, wird der DATE-Wert mit dem gMonthDay-Format des XML-Schemas generiert. |
0x00000050 |
XMLNSC.gDay |
Der Wert muss ein DATE-Wert sein. Wenn der Feldtyp diesen Wert enthält, muss wird DATE-Wert mit dem gDay-Format des XML-Schemas generiert. |
0x00000030 |
XMLNSC.base64Binary |
Der Wert muss ein BLOB-Wert sein. Der Wert wird mit base64-Codierung generiert. |
0x00000060 |
XMLNSC.List |
Das Element muss ein 'XMLNSC.Attribute' oder 'XMLNSC.Field' sein.
Wenn der Feldtyp diesen Wert enthält, werden die Werte aller untergeordneten Elemente der Nachrichtenbaumstruktur in einer Liste generiert, deren Einträge durch Leerzeichen getrennt sind. |
0x00000070 |
Feldtypen für die direkte Ausgabe.
Mit den folgenden Feldtypen können Sie vordefinierte Segmente eines XML-Dokuments generieren.
Es werden keine Zeichen ersetzt. Achten Sie daher besonders auf das korrekte Format des Ausgabedokuments. Verwenden Sie diese Konstanten nur, wenn keine andere Lösung in Frage kommt.
XMLNSC-Feldtypkonstante |
Zweck |
Wert |
XMLNSC.Bitstream |
Der Wert dieses Syntaxelements muss ein BLOB-Wert sein.
Der Wert wird direkt in den Ausgabebitstrom geschrieben. Informationen zu seiner Syntax finden Sie im Abschnitt Mit umfangreichen XML-Nachrichten arbeiten. |
0x03000200 |
XMLNSC.AsisElementContent |
Der Wert dieses Syntaxelements muss ein CHARACTER-Wert sein.
Der Wert wird direkt in den Ausgabebitstrom geschrieben. Es werden keine Zeichen ersetzt. Gehen Sie bei Verwendung dieses Elements daher äußerst sorgfältig vor. |
0x03000600 |