首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将名称空间添加到BizTalk

将名称空间添加到BizTalk
EN

Stack Overflow用户
提问于 2017-04-25 05:00:03
回答 1查看 537关注 0票数 0

我是BizTalk新手,在向输出文件添加名称空间时遇到了问题。

我需要获得以下输出,名称空间位于根级别:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<TestExternalPO xmlns="http://Test.EDI.TestExternalPO.Schemas">
 <Routing/>
 <POHeader/>
</TestExternalPO>

我的xsd是:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:b="http://schemas.microsoft.com/BizTalk/2003" 
           elementFormDefault="qualified" version="1.0">
<xs:annotation>
<xs:appinfo>
     <b:schemaInfo BizTalkServerEditorTool_Version="1.5"     root_reference="TestExternalPO"
      displayroot_reference="TestExternalPO" standard="XML"
    targetNamespace="http://Test.EDI.TestExternalPO.Schemas"
   xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
</xs:appinfo>
</xs:annotation>

我的xslt是:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:apply-templates select="TestExternalPO"/>
</xsl:template>

<xsl:template match="TestExternalPO">
<TestExternalPO xmlns="http://Test.EDI.TestExternalPO.Schemas">
  <Routing>....

任何帮助都非常感谢,

Maggs

更新25-4月感谢所有的评论。上面的设置可以工作,但没有给我想要的东西,即根级别的名称空间。

我确实测试了xslt中的名称空间,但在BizTalk上得到了一个错误。

代码语言:javascript
复制
<xsl:template match="TestExternalPO">
      <TestExternalPO xmlns="http://Test.EDI.TestExternalPO.Schemas">
        <Routing>
          <xsl:attribute name="SendPartner">

BizTalk错误-按消息类型"http://Test.EDI.TestExternalPO.Schemas“查找文档规范失败。验证架构部署是否正确。

下面是输入文件的结构:

代码语言:javascript
复制
<TestExternalPO>
  <POHeader>    
  </POHeader>
  <TradingPartnersList>
    <TradingPartners>   
    </TradingPartners>
  </TradingPartnersList>
  <Contract>   
  </Contract>
  <ItemsList>
    <Items>
    </Items>
  </ItemsList>
</TestExternalPO>

问题出在我声明的'xmlns‘。如果我添加了' targetNamespace ',那么输出的根元素就是targetNamespace。

这是可行的:

代码语言:javascript
复制
<xsl:template match="TestExternalPO">
      <TestExternalPO targetNamespace="http://Test.EDI.TestExternalPO.Schemas">
        <Routing>
          <xsl:attribute name="SendPartner">

再次感谢你的帮助。Maggs

EN

回答 1

Stack Overflow用户

发布于 2019-07-05 16:00:48

下面是xslt应该是什么样子。您希望排除命名空间,因此将前缀添加到exclude-result-prefixes

代码语言:javascript
复制
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                exclude-result-prefixes="ns0"
                xmlns:ns0="http://Test.EDI.TestExternalPO.Schemas">

<xsl:template match="/">
<xsl:apply-templates select="TestExternalPO"/>
</xsl:template>

<xsl:template match="TestExternalPO">
<ns0:TestExternalPO> 
  <Routing>....     
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43597637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档