【问题标题】:Schema Inheritance in BizTalk ServerBizTalk Server 中的架构继承
【发布时间】:2010-04-05 02:06:37
【问题描述】:

我只是想知道是否有人已经尝试过在 BizTalk 架构中进行架构继承之类的操作?

我正在使用 WCF 适配器并使用“使用适配器服务”来自动生成架构,我想要的是而不是总是生成架构,并且由于我的大部分架构都是相同的,所以我想要类似基本架构的东西.

我有这种情况,我正在测试平面文件分批,对于分批,我需要将模式的 maxoccur 属性设置为“1”,但对于批处理,它应该是“*”,而不是创建两个不同的模式我只想创建一个基本模式并从它继承,然后更改派生模式中的 maxoccur 属性。

任何帮助将不胜感激。

非常感谢

【问题讨论】:

  • 顺便说一句,我认为你必须反过来做。派生模式有效的所有文档都必须对基本模式有效。基类可以允许许多元素,而派生类只允许一个,反之则不行。
  • 嗨约翰,谢谢你的回复,但我不完全理解你的回复,你能详细解释一下吗?我的示例很简单,只是我有一个基本架构,并且从我的派生架构(导入)中,我将 maxoccur 属性更改为“*”,但是当我尝试使用 FFDasm 工具对其进行测试时,它会抛出一个异常而不是元素(元素数据结构类型是导入的模式)未声明。谢谢

标签: xml inheritance schema xsd biztalk


【解决方案1】:

你能封装你的基本模式吗? 然后你可以让管道为你做debatching ....定义信封结构,里面有任何“any”重复。

<?xml version="1.0" encoding="utf-16" ?>
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003">
xmlns="urn:SomeProject:Schemas:1.0" targetNamespace="urn:SomeProject:Schemas:1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:appinfo>
<b:schemaInfo is_envelope="yes" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
</xs:appinfo>
</xs:annotation>
<xs:element name="Envelope">
<xs:annotation>
<xs:appinfo>
<b:recordInfo body_xpath="/*[local-name()='Envelope' and namespace-uri()='urn:SomeProject:Schemas:1.0']" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
**<xs:any />** 
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

然后在管道的 XMLDisassemble 中添加到集合中...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2013-03-22
    • 1970-01-01
    相关资源
    最近更新 更多