範本定義檔的 TemplateTag 元素
範本定義檔中會使用 TemplateTag 與
TemplateDocument 元素。您可為每一個入埠 XML 訊息定義多個 TemplateTag 元素。不過,
您必須使用 name 屬性,
讓每一個 TemplateTag 元素各鏈結至一個 TemplateDocument 元素。name 屬性的值應與定義於範本定義檔中之 TemplateDocument 元素之
TemplateTagName 子元素中的值相符。
每一個 TemplateTag 元素在
Tag 子元素中列有一些標籤定義。Tag 元素可含有下列五種屬性:
- XPath:相對於 TemplateDocument 中所指之 StartElement 的 XML 元素路徑。XPath 元素是用來尋找「名稱-值」配對之欄位名稱的關鍵字。
XPath 的範例如下:
- E1/E2:將元素 E2 置於元素 E1 之內。此種路徑類型的範例如下:
XPath='Address/ZipCode'
E1/E2/E3:將元素 E3 置於元素 E2 內,而將元素 E2 置於元素 E1 內。
此種路徑類型的範例如下:
XPath='ContactInfo/Address/ZipCode'
- E3@a1:將屬性 a1 置於元素 E3 中。此種路徑類型的範例如下:
XPath='InvoiceInfo@InvoiceType'
在本範例中,InvoiceType 屬性用以指出在各種發票類型中訊息所要套用的一種。
- E4[1]:元素 E4 的第一個案例。E4 可有多個案例。
舉例來說,當某個地址需要多行時,即可使用此格式。
地址的每一行可含在一個個別的 Tag 元素中。
- E5[@a2="value 2"]:元素 E5 的案例,其中 E5 的 a2 屬性等於 "value 2"。舉例來說,您可以使用下列格式:
XPath='InvoiceInfo[@InvoiceType="ShippingInvoice"]
E5[@a1="value1"][@a2="value 2"]:元素 E5 的案例,其中 E5 的屬性 a1 等於 "value1",E5 的屬性 a2 等於 "value 2"。
- XPathType:XPath 中所指的元素類型。此屬性用來指出 XML 剖析器應如何處理 XML 元素。
支援的類型有:
- PCDATA:元素或元素的屬性中含有將要處理並會以「名稱-值」配對傳回之列與入埠資料。
此為 XPathType 的預設值。
- EMPTY:元素為空的或含有可忽略的資料。不會針對此元素傳回「名稱-值」配對。
- REPEAT:元素可有多個案例。會以「名稱-值」配對傳回每一個元素的 PCDATA。
- ATTRIBUTE:如果元素欄位名稱是由屬性的值來決定,
此屬性應為 ATTRIBUTE 類型。
- VECTOR:會在向量中附加一個新雜湊表,且會在新雜湊表中放入針對子元素產生的所有「名稱-值」配對。
- USERDATA:指出一個使用者定義的元素。元素會有一個 name 屬性,
而該屬性的值為欄位名稱。會以「名稱-值」配對傳回元素的資料。
- Field:將置於 TypedProperty 中之「名稱-值」配對的欄位名稱。應與所呼叫之指令所用的參數名稱相符。
- FieldType:資料欄位的類型。欄位類型可為 String 或
Date(ISO 8601 日期格式)。預設值為 String。
- FieldInfo:指出應放入「名稱-值」配對的 TypedProperty。
預設值為 Data。如果您想將「名稱-值」配對置於多個 TypedProperty 中,
則在下列各值方面您必須指定一個以上,其間並以逗點隔開:
- Data:將「名稱-值」配對置於內含指令之引數的 commandProperty 物件中。
- Control:將「名稱-值」配對置於內含指令之控制資訊(像是 USERID 或 PASSWORD)
的 messageProperty 中。
- Command:使用「名稱-值」配對來決定應呼叫的指令。
所產生的「名稱-值」配對會用於 TemplateDocument 元素的
CommandMapping 元素中。
如果在標籤範本中找不到 XPath 元素,
則會以 XML 訊息中的 XPath 作為欄位名稱,
且 XPathType 為 PCDATA,
並使用 XPath 產生一個「名稱-值」配對以作為欄位名稱。
有關 TemplateTag 元素的使用範例,請參閱
sys_template.xml 檔。