Quando si fa riferimento o si impostano gli elementi all'interno del contenuto di un messaggio XML, è necessario utilizzare i nomi di correlazione corretti, nei riferimenti di campo ESQL, per definirli. La seguente tabella elenca i nomi di correlazione per tutti gli elementi validi. Per informazioni sui nomi di correlazione per gli attributi XmlDec e DocTypeDecl, consultare Accesso agli attributi nei messaggi XML, Accesso a XmlDecl in un messaggio XML e Accesso a DocTypeDecl in un messaggio XML. Per informazioni sui riferimenti di campo, consultare Riferimenti di campo ESQL.
Elemento sintassi | Nome di correlazione |
---|---|
CDataSection | (XML.CDataSection) |
Comment | (XML.Comment) |
Content | (XML.Content) - è supportato anche (XML.pcdata) |
Element | (XML.Element) - è supportato anche (XML.tag) |
EntityReferenceEnd | (XML.EntityReferenceEnd) |
EntityReferenceStart | (XML.EntityReferenceStart) |
ProcessingInstruction | (XML.ProcessingInstruction) |
WhiteSpace | (XML.WhiteSpace) |
Quando non è presente un tipo in un elemento del percorso, il tipo dell'elemento sintassi non è importante. Cioè, un elemento del percorso name corrisponde a qualsiasi elemento sintassi con il nome name, indipendentemente dal tipo di elemento. Così come un elemento del percorso può specificare un nome e non un tipo, un elemento del percorso può specificare un tipo e non un nome. Questo tipo di elemento del percorso corrisponde a qualsiasi elemento sintassi che abbia il tipo specificato, indipendentemente dal nome. Quello che segue è un esempio:
FIELDNAME(InputBody.(XML.Element)[1])
Questo esempio restituisce il nome del primo elemento nel contenuto del messaggio. Il seguente esempio di XML generico mostra quando è necessario utilizzare tipi nei percorsi:
<tag1 attr1='abc'> <attr1>123<attr1> </tag1>
Il percorso InputBody.tag1.attr1 fa riferimento all'attributo denominato attr1, poiché gli attributi appaiono davanti ad elementi nidificati in una struttura ad albero della sintassi generata da un programma di analisi XML. Per fare riferimento all'elemento denominato attr1 è necessario utilizzare un percorso:
InputBody.tag1.(XML.Element)attr1
E' sempre consigliabile, in questi casi, includere tipi per essere espliciti circa l'elemento di sintassi a cui si fa riferimento.
Il seguente ESQL:
SET OutputRoot.XML.Element1.(XML.Element)Attribute1 = '123';
è fondamentalmente una forma abbreviata per il seguente percorso completo :
SET OutputRoot.XML.(XML.Element)Element1.(XML.Element)Attribute1. (XML.Content) = '123';
Prendere in considerazione il seguente XML:
<?xml version="1.0"?> <!DOCTYPE Order SYSTEM "Order.dtd"> <Order> <ItemNo>1</ItemNo> <Quantity>2</Quantity> </Order>
Il percorso InputBody.Order fa riferimento all'elemento di sintassi (XML.DocTypeDecl), poiché questo compare prima di XML Body nella struttura ad albero della sintassi e ha lo stesso nome. Per fare riferimento all'elemento ItemNo è necessario utilizzare un percorso InputBody.(XML.Element)Order.ItemNo. Il seguente esempio dà una dimostrazione dello stesso concetto, utilizzando questo messaggio di input XML:
<doc><i1>100</i1></doc>
Per assegnare 112233 a <i1>, è necessario utilizzare la seguente espressione ESQL:
SET OutputRoot.XML.(XML.Element)doc.I1=112233;