日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BizTalk开发系列(十二) Schema设计之Group与Order

發布時間:2023/12/2 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BizTalk开发系列(十二) Schema设计之Group与Order 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

更多內容請查看:BizTalk動手實驗系列目錄

? ? ? ? ? ? ? ? ? ? ??BizTalk 開發系列

????? 開發BizTalk項目的時候會先約定各系統之間往來的消息格式. 由于BizTalk內部唯一使用XML文檔。因此消息的格式為XML Schema(XML Schema 用于描述 XML 文檔的結構)。雖然BizTalk提供了對于XML消息的驗證功能。但是往往在BizTalk Schema設計器設計Schema的時候對于Group的用途不是很在意。今天我們來了解一下它的作用,希望對于設計靈活的Schema有點幫助。

???? 首先,我們來了解一下Group的概念,在W3C的定義中. Group是用于定義在復雜類型定義中使用的元素組。BizTalk 定義的Schema當然也是符合W3C規范的.但是Group概念跟W3C規定的稍微有點區別的:除了Attriubte Group(元素組)之外通過BizTalk Schema設計的Group不會真正創建組,即在Schema文件中不會出現Group Name。而是通過相應的Order指示器定義一個復雜類型。我們以下講的Group都是通過BizTalk Schema設計器定義的Group.

???? 從Schema設計器中可以得到以下幾種類型的Group:

???????? 1. Sequence 規定子元素必須按照特定的順序出現

???????? 2. Choice 指示器規定可出現某個子元素或者可出現另外一個子元素(可理解為單選)

???????? 3. All 子元素能夠以任意順序出現,每個子元素可出現零次或一次。

???????? 4. Attriubte 屬性組

? Group 示例

???? 打開VisualStudio創建一個BizTalk項目并且新建一個Schema文件。在Schema文件上右擊屬性在輸入輸出屬性中輸入同一個文件的路徑。在接下來的測試中可以直接通過右擊Schema選擇生成實例和驗證實例這兩項目來測試效果。

? Sequence Group

????? 在Root節點中新建一個Record(記錄)節點,名為SequenceRecord。在該節點新建Sequence Group. 在Group下創建三個Element(元素)。如下圖所示

????? 生成Schema的XML實例,打開源碼可得到如下的XML內容。?

<ns0:Root xmlns:ns0="http://schemasample.schema1"/>
?
<SequenceRecord>
???
<First>First_0</First>
???
<Second>Second_0</Second>
???
<Third>Third_0</Third>
?
</SequenceRecord>
</ns0:Root>?

???? 驗證Schema實例可以輸出窗口看到成功通過驗證的消息。這時更改節點的位置.將Third節點移到First節點之前,保存文件。再次驗證Schema實例??梢栽谳敵龃翱诳吹饺缦孪?#xff1a;

? E:\Projects\SchemaSample\Msgs\Schema1.xml: error BEC2004: The element 'SequenceRecord' has invalid child element 'Third'. List of possible elements expected: 'First'.

?

Choice Group

??? 在Root節點中新建一個Record(記錄)節點,名為ChoiceRecord。在該節點下新建Choice Group. 在Group下創建兩個Element(元素)。如下圖所示

?? 生成Schema的XML實例.打開源碼可得到如下XML內容(節選)

<ChoiceRecord>
???
<Female>Female_0</Female>
?
</ChoiceRecord>?

? 驗證Schema實例可以輸出窗口看到成功通過驗證的消息。這時在ChoiceRecord節點下添加如下內容:

<Male>Male_0</Male>?

 保存文件,再次驗證Schema實例。在輸出窗口得到如下內容:

E:\Projects\SchemaSample\Msgs\Schema1.xml: error BEC2004: The element 'ChoiceRecord' has invalid child element 'Male'.

 這時可去掉Female節點,再次驗證。在輸出窗口亦可看到驗證成功的消息。

Attriubte Group

在Root節點中新建一個Record(記錄)節點,名為AttributeGroup。在該節點下新建Attribute Group. 在Group下創建兩個Attribute(屬性)。如下圖所示

設計器只允許在Attribute Group下面創建Attribute字段。

??

 生成Schema的XML實例可得到如下內容(節選)

<AttributeRecord Attribute_1="Attribute_1_0" Attribute_2="Attribute_2_1"?/>?

?

總結

 通過以上的Sample了解了BizTalk Group的類別及作用。Sequence,Choice,All類型是W3C中定義的Order指示器(Order 指示器用于定義元素的順序),但不知為何ALl Group一直是灰色的。所以本實例就沒有對All類型進行測試。 另外還可能通過直接定義Record的Group Order Type屬性直接指定整個記錄的排序類別(如下圖所示)。

轉載于:https://www.cnblogs.com/cbcye/archive/2008/10/05/1304159.html

總結

以上是生活随笔為你收集整理的BizTalk开发系列(十二) Schema设计之Group与Order的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。