XML 메시지 본문 내의 요소를 참조하거나 설정할 때 ESQL 필드 참조에 올바른 상관 이름을 사용해야 합니다. 다음 표에는 모든 올바른 요소에 대한 상관 이름이 나열되어 있습니다. XmlDec 및 DocTypeDecl 속성에 대한 상관 이름인 경우, XML 메시지에서 속성에 액세스, XML 메시지에서 XmlDecl에 액세스 및 XML 메시지에서 DocTypeDecl에 액세스를 참조하십시오. 필드 참조에 대한 정보는 ESQL 필드 참조를 참조하십시오.
구문 요소 | 상관 이름 |
---|---|
CDataSection | (XML.CDataSection) |
Comment | (XML.Comment) |
Content | (XML.Content) - (XML.pcdata)도 지원됨 |
Element | (XML.Element) - (XML.tag)도 지원됨 |
EntityReferenceEnd | (XML.EntityReferenceEnd) |
EntityReferenceStart | (XML.EntityReferenceStart) |
ProcessingInstruction | (XML.ProcessingInstruction) |
WhiteSpace | (XML.WhiteSpace) |
유형이 경로 요소에 없으면 구문 요소의 유형이 중요하지 않습니다. 즉, 경로 요소 name은 요소 유형과 관계없이 이름이 name인 구문 요소와 일치합니다. 경로 요소가 유형이 아닌 이름을 지정할 수 있는 방법과 동일한 방법으로 경로 요소는 이름이 아닌 유형을 지정할 수 있습니다. 이 경로 요소 유형은 이름에 관계없이 지정된 유형을 가진 구문 요소와 일치합니다. 다음은 그 예입니다.
FIELDNAME(InputBody.(XML.Element)[1])
이 예에서는 메시지의 본문에 있는 첫 번째 요소의 이름을 리턴합니다. 일반 XML에 대한 다음 예는 경로에서 유형을 사용해야 하는 경우를 보여줍니다.
<tag1 attr1='abc'> <attr1>123<attr1> </tag1>
속성이 XML 구문 분석기에 의해 생성된 구문 트리의 중첩 요소 앞에 나타나기 때문에 경로 InputBody.tag1.attr1은 attr1이라고 하는 속성을 나타냅니다. attr1이라는 요소를 참조하려면 다음과 같은 경로를 사용해야 합니다.
InputBody.tag1.(XML.Element)attr1
이러한 경우 참조되는 구문 요소를 명확히 하기 위해 항상 유형을 포함시키는 것이 좋습니다.
다음의 ESQL은,
SET OutputRoot.XML.Element1.(XML.Element)Attribute1 = '123';
다음의 완전한 경로를 짧게 나타낸 것입니다.
SET OutputRoot.XML.(XML.Element)Element1.(XML.Element)Attribute1. (XML.Content) = '123';
다음의 XML을 고려해 보십시오.
<?xml version="1.0"?> <!DOCTYPE Order SYSTEM "Order.dtd"> <Order> <ItemNo>1</ItemNo> <Quantity>2</Quantity> </Order>
InputBody.Order 경로는 구문 트리에서 XML 본문 앞에 나타나고 동일한 이름을 사용하므로 (XML.DocTypeDecl) 구문 요소를 참조합니다. 요소 ItemNo를 참조하기 위해 경로 InputBody.(XML.Element)Order.ItemNo를 사용해야 합니다. 다음 예는 다음의 XML 입력 메시지를 사용하여 동일한 개념을 설명합니다.
<doc><i1>100</i1></doc>
112233을 <i1>에 지정하려면, 다음 ESQL 표현식을 사용해야 합니다.
SET OutputRoot.XML.(XML.Element)doc.I1=112233;