Biztalk 2013的運作架構中,會使用各種型別的Message物件進行資料的傳遞或觸發流程的運作。該Message都是各式各樣的**XML,而定義XML格式就是透過XSD檔,也就是Biztalk開發專案中的Schema
。
因此,看懂Schema的內容是很重要的一件事。如果對XML及Schema沒有基本的認識,很容易就陷在Biztalk的Error 訊息中而出不來。以下整理在看懂XSD的內容時所找的XML相關資訊。
XML是甚麼?
XML是用來存放及傳遞資料的一種工具
XML 基本規則
一個合乎標準("Well Formed")的XML須符合以下的規則
- XML 需有一個 Root Element
- XML prelog是optional,如果有的話,必須在文件的第一行 XML prelog是指以下這個東西
xml <?xml version="1.0" encoding="UTF-8"?>
- 所有的 XML Elements 必須有 Closing Tag
- XML Tags是有區分大小寫的
- XML Element必須是巢狀結構,不能夠有Element相互穿插的狀況
- XML Attribute 的值必須使用雙引號包起來
- 特殊符號符合Entity References的規則
- Comment符合規則
參考: XML Syntax Rules
XML Namespaces
XML Namespace的目的是為了防止XML Element的命名重複造成的命名衝突問題。
例如以下的XML中有兩個table
XML Element,故使用XML Namespace進行區分
```xml
<root xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="https://www.w3schools.com/furniture">
<h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table>
<f:table> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table>
```
參考: XML Namespace
XML Schema
XML Schema是用來描述XML 文件的結構,它本身也是一種XML 文件,所以也需要符合XML的語法。所以,一個XSD 文件也有一個標準的XSD用來規範它的結構及Element。
在XML Schema中,根Element會是<schema>
。一個XML Schema看起來會是這樣
```xml
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="https://myCompany" xmlns="https://www.w3schools.com"> ... ... </xs:schema> ```
xmlns:xs="http://www.w3.org/2001/XMLSchema"
是指xs:
開頭的元素都是用來定義schema的標準元素targetNamespace="https://myCompany"
是指此Schema所定義的XML的元素的default Namespace是"https://myCompany"xmlns="https://www.w3schools.com"
是指此份XSD檔的defualt Namespace是"https://www.w3schools.com"
XPath語法
XPath可用一段表述式(expressions)來取得XML document中的某一個node(element, attribute, text, namespace, processing-instruction, comment都是node)或是node的集合。它包含了超過200個 built-in functions。
XPath語法可以參考XPath Syntax