使用任意文字的字元編碼
從 BizTalk Server 2013 R2 開始,“FreeText” 可用於欄位或區段。 不會剖析 「FreeText」 字段/區段中的數據。
您所需了解的事情
Separator | 行為 | 範例 |
---|---|---|
~: 重複分隔符 | 在欄位中,重複 (~) 會被視為重複分隔符。 在非可用區段中,重複 (~) 會被視為重複分隔符。 在自由區段中,重複 (~) 被視為免費文字的一部分,而不是新的重複。 | 在下列範例中,FRE 是免費的 Segment。 它可以有任意字元做為自由文字,包括 ~。 任何額外的重複 (~) 都不會被視為重複分隔符,而且會被視為「自由文字」內容。 即使免費區段的子系不可重複,而且包含重複 (~) ,驗證仍會成功。 FRE 範例: FRE|Foo&^|Foo&^|Foo&^|Foo&^~Foo&^|Foo&^|Foo&^|Foo&^ 在下列範例中,EVN4 定義為自由文字,因為它包含 &^。 遇到 “|” 分隔符時,會將它視為目前可用文字的結尾。 EVN 範例: EVN|||Foo&^Foo&^Foo&^Foo&^Foo&^|| 在下列範例中,EVN5 的第一個子系會定義為自由文字,因為它包含 &。 遇到 “^” 分隔符時,會將它視為目前可用文字的結尾。 EVN5 範例: EVN||||Foo&Foo&Foo&Foo&Foo&^5.2| 在下列範例中,即使在架構中定義為FreeText,5.2.1和5.2.2不能有任何分隔符做為Free Text。 5.2.1 和 5.2.2 範例: EVN||||Foo1^5.2.1&5.2.2| 在下列範例中,假設 EVN4 可以重複,而且是免費文字類型。 Foo1&^ 會被視為第一次重複, 而 Foo2&^ 會被視為第二次重複。 如果 EVN4 無法重複 (MaxOccurs = 1) ,則即使它包含 ~,驗證仍會失敗,即使它是非可用文字字段 (,) 。 EVN4 範例: EVN |||Foo1&^~ Foo2&^ || |
|: 欄位分隔符 | 如果在可用區段的區段標記之後遺漏欄位分隔符,則驗證會成功。 | 在下列範例中,FRE 是免費文字類型。 可用文字內容可以在 FRE 區段標籤之後立即啟動,且不含 「|」 字段分隔符。 這兩個範例都成功: FREabc FRE|abc 在下列範例中,驗證成功: DASM 的輸入訊息: FRE|abcd DASM 的輸出: <SegmentData>|abcd</SegmentData> ASM 的輸出: FRE|abcd DASM 的輸入訊息: FREabcd DASM 的輸出: <SegmentData>abcd</SegmentData> ASM 的輸出: FREabcd |
Parent-Child 選擇性 | 父子式選擇性驗證規則仍適用。 | 假設父系是選擇性的,而且其中一個子系是必要項目,然後: - 如果沒有填入其他子系和強制子系,則訊息驗證會成功。 - 如果至少填入一個子系,則也必須填入強制子系。 否則,訊息驗證會失敗。 在下列範例中,欄位 1 為選擇性。 其 1.a 子系是選擇性的,而且是免費文字類型。 其 1.b 子系是必要專案: xyz|1.a^1.b|2 在下列範例訊息中, dfssdf&sdf 會被視為單一元素 - 1.a。 剖析器會檢查 1.b 是否存在。 |達到 時,它會假設未填入 1.b,且訊息驗證失敗: xyz|dfssdf&sdf|2 |
MSH、FSH 和 BSH 區段 | 所有欄位都會忽略任意文字。 這些區段會對應至標頭區段。 驗證會像平常一樣發生,即使它們定義為自由文字也一樣。 | |
\: 逸出字元 | 如果元素中有偶數的 “\”,即使它們不是連續的) ,驗證仍會成功 (。 如果有奇數,驗證就會失敗。 非免費文字欄位會繼續相同的行為。 使用 [免費文字] 欄位時,數字沒有驗證;它被視為免費文字內容。 |
訊息分隔符 提供這些範例中分隔符的詳細資訊。
使用自由文字
在Visual Studio的專案中,開啟架構。
以滑鼠右鍵按下記錄,選取 [ 插入架構節點],然後選取 [子字段元素]。
在 [屬性] 中,選取 [ 數據類型],然後選取 [ Free Text (SimpleType) 。