【发布时间】:2017-06-30 00:48:14
【问题描述】:
我正在使用以下代码更改 BizTalk 管道组件中现有 XML 消息中的命名空间。这可行,但我如何将命名空间别名也添加到文档中。
XNamespace toNs = "http://hl7.org/fhir/Encounters";
XElement doc = XElement.Parse(xmlIn);
doc.DescendantsAndSelf().Attributes().Where(a => a.IsNamespaceDeclaration).Remove();
var ele = doc.DescendantsAndSelf();
foreach (var el in ele)
el.Name = toNs + el.Name.LocalName;
return new XDocument(doc);
【问题讨论】:
-
你检查过这个answer吗?也许
XmlSerializerNamespaces可以胜任。 -
您是否尝试过使用 ESB 添加和删除命名空间管道组件? msdn.microsoft.com/en-us/library/ee250047(v=bts.10).aspx
-
等等!你为什么要这样做?我问是因为 HL7 消息没有命名空间是不寻常的。为了清楚起见,还有更多“正确”的方法可以做到这一点。
-
我必须这样做,因为现有的命名空间和 messageType 已经在应用程序中使用。更改命名空间似乎是一个简单的解决方案,但我的地图遇到了很多问题,并为此发布了另一个线程。我确定有更好的方法,但我将尝试添加别名,如下所示,看看在我从头开始之前是否可行
-
@David 哦...嗯...那么...对不起,是的,有更好的方法来处理这个问题。事实上,有正确的方法来处理这个问题。我会将其发布为答案。
标签: c# xml biztalk biztalk-pipelines