- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我必须通过 BizTalk 连接 REST 服务。该服务返回一个 JSON 响应,如下所示。当 BizTalk 响应端口尝试解码 JSON 消息时,我收到有关 JSON 到 XML 转换的错误。发生此错误是因为 JSON 消息中嵌入了 HTML 标记。
错误:
(There was a failure executing the response(receive) pipeline: "Avansas.Paritus.Suggest.T.JSONReceive, Avansas.Paritus.Suggest.T, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7b2984270a9ffd13" Source: "JSON decoder" Send Port: "Avansas.Ibrahim.Suggest.T.SendPort" URI: "api1.test.com/services/rest"; Reason: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. )
例如:
如下响应消息在 JSON 中有一个标签元素。 Label 元素包含带有 html 标记 (City) 的文本,这就是为什么当 BizTalk 尝试将 JSON 转换为 XML 时出现错误的原因。我认为 BizTalk 尝试将 JSON 转换为图 2,但我想将其转换为图 3。
我该如何解决这个问题?
有没有什么方法可以在没有任何模式的情况下通过编排进行直通传输?
图1
{
"suggestion": [
{
"id": "[31 31 31 30 30 39]",
"label": "Global <b>City</b> 2. Etap Global <b>Cıty</b> ",
"value": "Global <b>City</b> 2. Etap Villaları "
},
{
"id": "[39 33 36 32 35 36]",
"label": "<b>City</b> Aqua Villas Sk. Kuşadası Aydın",
"value": "<b>City</b> Aqua Villas Sk. Kuşadası Aydın"
}
]
}
图 2:
<root>
<suggestion>
<id>[31 31 31 30 30 39]</id>
<label>Global
<b>City</b> 2. Etap Global
<b>Cıty</b>
</label>
<value>Global
<b>City</b> 2. Etap Villaları
</value>
</suggestion>
<suggestion>
<id>[39 33 36 32 35 36]</id>
<label>
<b>City</b> Aqua Villas Sk. Kuşadası Aydın
</label>
<value>
<b>City</b> Aqua Villas Sk. Kuşadası Aydın
</value>
</suggestion>
</root>
图 3:
<root>
<suggestion>
<id>[31 31 31 30 30 39]</id>
<label>Global
<b>City</b> 2. Etap Global
<b>Cıty</b>
</label>
<value>Global
<>City</b> 2. Etap Villaları
</value>
</suggestion>
<suggestion>
<id>[39 33 36 32 35 36]</id>
<label>
<b>City</b> Aqua Villas Sk. Kuşadası Aydın
</label>
<value>
<b>City</b> Aqua Villas Sk. Kuşadası Aydın
</value>
</suggestion>
</root>
我的服务也可以返回 xml 响应,当我尝试处理 xml 响应时出现以下错误。
XML Error There was a failure executing the response(receive) pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "XML disassembler" Send Port: "aaa.bbb.Suggest.T.SendPort" URI: "https://api1.test.com/services/rest" Reason: Finding the document specification by message type "html" failed. Verify the schema deployed properly
响应xml如下所示
<?xml version="1.0" encoding="UTF-8"?>
<suggestions>
<suggestion>
<id>111011</id>
<label>Global <b>Cıty</b> 1. Etap Vıllaları Sokak</label>
<value>Global Cıty 1. Etap Vıllaları Sokak</value>
</suggestion>
<suggestion>
<id>111009</id>
<label>Global <b>Cıty</b> 2. Etap Vıllaları Sokak</label>
<value>Global Cıty 2. Etap Vıllaları Sokak</value>
</suggestion>
</suggestions>
最佳答案
使用这个模式:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://BizTalk_Server_Project1.JSONSchema1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="suggestion">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="id" type="xs:string" />
<xs:element minOccurs="0" name="label" type="xs:string" />
<xs:element minOccurs="0" name="value" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
这条管道:
生成此消息:
<ns0:Root xmlns:ns0="http://BizTalk_Server_Project1.JSONSchema1">
<suggestion>
<id>[31 31 31 30 30 39]</id>
<label>Global <b>City</b> 2. Etap Global <b>Cıty</b> </label>
<value>Global <b>City</b> 2. Etap Villaları </value>
</suggestion>
<suggestion>
<id>[39 33 36 32 35 36]</id>
<label><b>City</b> Aqua Villas Sk. Kuşadası Aydın</label>
<value><b>City</b> Aqua Villas Sk. Kuşadası Aydın</value>
</suggestion>
</ns0:Root>
关于json - BizTalk JSON 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31149288/
我已使用 Microsoft BizTalk 默认管道“XMLReceive”将 XML 放入接收位置,然后使用 PassThroughTransmit 将文件输出到目录。 但是,如果使用十六进制编辑
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我遇到了慢速(自定义)BizTalk 适配器的问题。 每天晚上,应用程序会在几分钟内向 MSMQ 发送超过 10,000 条消息。 不幸的是,BizTalk 需要几个小时来处理它们。 我没有任何编排,
我的项目中有 2 个编排和 2 个模式(第一个用于请求,第二个用于响应)。Orchestration 1有一个 Receive形状(激活=真)。它收到一个请求,然后将它路由到 Orchestratio
我有一个接收端口,其中两个文件接收位置轮询同一网络共享。接收位置之间的唯一区别是它们使用不同的文件掩码。它们都使用带有单个平面文件反汇编器组件的自定义管道。我有一个订阅接收端口的发送端口。 (这只是我
单个 Biztalk Server 可以有多个主机进程。是否可以为每个主机进程创建一个应用程序配置文件?例如,我想使用 Unity 或 log4net 或任何需要此类配置文件的东西。 编辑:感谢大卫·
我有一个带有文件接收位置的应用程序。主机实例运行几个小时后,接收位置无法识别放入其正在监视的文件夹中的新文件。它并没有完全忘记它们,只是性能变得越来越慢。接收位置配置为每 60 秒轮询一次目标文件夹,
我在配置Biztalk 2016 Group时遇到问题 [2017-01-06 16:25:27:0170错误BtsCfg]服务器尚未配置。 若要配置服务器,请运行BizTalk Server配置向导
我已经阅读了将 BizTalk 解决方案拆分为多个项目的良好做法,并且看到了关于拆分的确切性质的一些争论,例如... - 可以按工件拆分,即模式、编排、 map 等。 - 可以按功能拆分 但是有什么好
如何在知道业务流程名称的情况下动态调用 BizTalk 业务流程? 调用编排形状需要在设计时知道编排的名称和参数。我试过使用'call' XLang 关键字,但它还需要编排名称作为设计时间,就像表达式
我对 BizTalk 和创建自定义管道组件相当陌生。我在示例中看到过类似于以下内容的代码: public void Disassemble(IPipelineContext pContext, IBa
问题: 我正在尝试根据其输入文件名转换和路由消息。文件名提供了有关如何处理数据的提示。作为一个菜鸟,我有理由确定我这样做很困难...... 我创建了一个编排。我将消息从输入模式转换为输出模式。我想检查
我的bizTalk应用程序部署在主动-被动集群中。我需要安排其中一个主机实例的重新启动(每天,每天早上)。我如何知道如何获取事件主机实例,因为它可能是其中任何一个,因为可能会发生故障转移?我尝试停止/
下午好, 我正在尝试在发送端口中设置输出文件名,但可用的文件名宏无法正常工作。 我需要“file.YYYYMMDD_HHMMSS”形式的内容。有一个日期时间组合宏(格式错误)、一个仅时间宏,但没有仅日
我想将我的数据库连接到 CRM,据我所知,BizTalk 是最佳选择。我知道 BizTalk 有自己的消息传递系统,但是考虑到我的数据的稳定性是否足够,或者我应该在两者之间放置一个消息总线? 最佳答案
我在 BizTalk 中有一个 MSMQ 发送端口,该端口配置为使用有序传递发送消息。当端口发送了一批消息后,它会将端口的一个实例保留为事件的运行实例。 我仍然以正确的顺序收到正确的文件,但我必须手动
是否有人编写过一个查询来同时监视所有 BizTalk 工件。 我的查询不起作用,而且我似乎无法完成它: 这是我的: select RL.Name AS rlName , ('Url:
我们有一个 BizTalk 2010 接收位置,它将获取一个 70MB 的文件,然后使用入站映射(在接收位置)和出站映射(在发送端口)生成一个 1GB 文件。 执行上述过程时,SQL Server 会
无论如何,BizTalk 接收端口是否可以初始化编排,拉入 FailedMessages,否则这些 FailedMessages 可以使用对存在的 ErrorType 及其发生的原始端口名称进行过滤来
我们有多个 BizTalk 2006 应用程序服务器,我发现几乎不可能在它们上保持项目版本同步。部署 MSI 包、导入它们、匹配 GAC 中的文件、部署一些注册表更改是一个繁琐的过程,如果遗漏了一个步
我是一名优秀的程序员,十分优秀!