Oracle XSLT:默认命名空间导致空标签

2023-11-30

我认为提出这个问题的最好方法是:如何为输出中的根元素指定默认命名空间?这样做:

<xsl:template match="/">
        <r xmlns:s"http://www.mycompany.com/s/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mycompany.com/default/schema" >
....
....

Oracle 中出现错误:



ORA-31011: XML Parsing Failed
ORA-19201: Error occurred in in XML Processing
LPX-00604: Invalid attribute 'nIfNotExist', for attribute 'name'
ORA-06512: at SYS.XMLType at line 74 
ORA-06512: at line 24
  

哪里的'nIfNotExist'是一个模板:

 <xsl:template name="nIfNotExist" xmlns:scom="http://www.mycomapny.com/s/schema">
  <xsl:param name="nodeToTest"/>
  <xsl:param name="nodeName"/>
                ...

我希望生成的文档的根元素如下所示:

<r xmlns:s="http://www.mycompany.com/s/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mycompany.com/default/schema">

I want "http://www.mycompany.com/default/schema"作为默认命名空间,因此文档可以通过 XSD 验证。否则,我必须在运行验证之前手动添加它(不是批处理的选项)。

EDIT

我已经尝试过这个:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:s="http://www.mycompany.com/schema"
 xmlns="http://www.mycompany.com/def_schema">

结果是一个没有数据的文档,如下所示:

<r xmlns:s="http://www.mycompany.com/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mycompany.com/def_schema">
    <a></a>
    <s:b></s:b>
    <c></c>
    ....

本来应该是:

<r xmlns:s="http://www.mycompany.com/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mycompany.com/def_schema">
    <a>123</a>
    <s:b>ABC34L</s:b>
    <c>7.092381</c>

UPDATE

源数据看起来像这样(我得到的输入没有定义名称空间):

<ROOT_NODE>
    <DATA_A>1234</DATA_A>
    <DATA_B>34567</DATA_B>
    <OTHER_DATA_C>7.123456</OTHER_DATA_C>
</ROOT_NODE>

所需输出

<r xmlns:s="http://www.mycompany.com/schema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xmlns="http://www.mycompany.com/def_schema">
    <a>1234</a>
    <s:b>34567</s:b>
    <c>7.123456</c>
</r>

这种转变:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:s="http://www.mycompany.com/schema"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.mycompany.com/def_schema"
 >
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/*">
  <r>
   <xsl:apply-templates/>
  </r>
 </xsl:template>

 <xsl:template match="DATA_A">
  <a>
   <xsl:apply-templates/>
  </a>
 </xsl:template>

  <xsl:template match="OTHER_DATA_C">
   <c>
    <xsl:apply-templates/>
   </c>
  </xsl:template>

  <xsl:template match="DATA_B">
   <s:b>
    <xsl:apply-templates/>
   </s:b>
  </xsl:template>
</xsl:stylesheet>

当应用于提供的 XML 文档时:

<ROOT_NODE>
    <DATA_A>1234</DATA_A>
    <DATA_B>34567</DATA_B>
    <OTHER_DATA_C>7.123456</OTHER_DATA_C>
</ROOT_NODE>

产生想要的结果:

<r xmlns:s="http://www.mycompany.com/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mycompany.com/def_schema">
    <a>1234</a>
    <s:b>34567</s:b>
    <c>7.123456</c>
</r>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle XSLT:默认命名空间导致空标签 的相关文章

随机推荐

  • Ant build.xml需要用户输入,但Eclipse没有tty

    我正在尝试将 Eclipse 与我的 build xml 更好地集成 我的构建文件为程序的本机部分调用 GNU Make 并且 Makefile 使用 sudo 将编译的库移动到系统路径中 不幸的是 这需要输入密码 并且 Eclipse 的
  • 安全地检查变量的类型

    对于系统 我需要将指针转换为 long 然后将 long 转换回指针类型 正如您可以猜到的那样 这是非常不安全的 我想做的是使用dynamic cast来进行转换 所以如果我混合它们 我会得到一个空指针 这一页说http publib bo
  • rabbitmq-server安装CentOS - Erlang错误

    我有centos 6并尝试使用rpm安装rabbitmq 3 5 3 没有 yum 选项 这让我陷入了错误 root osboxes CentOS rpm Uvh rabbitmq server 3 5 3 1 noarch rpm war
  • C++ 自定义操作返回空字符串

    我们在 C 中的延迟自定义操作方面遇到问题 我们只需要自定义操作数据属性 apacheconfpath 的值 该属性目前具有测试的虚拟值 这是我们的 C 自定义操作 UINT stdcall AppendToApacheConfigFile
  • Unity2D:缩放游戏对象而不缩放其子对象

    我有一个敌人 里面有孩子 敌人也有死亡动画 在死亡动画中 使用动画师 我将敌人缩放到适当的大小 然而 敌人内部的孩子也被缩小 即使我在孩子上有一个动画 我已经调整了它的大小 我还在这个孩子上添加了锚点位置 有没有办法既能缩小敌人的规模 又能
  • Azure 事件中心 - 异地恢复:它是否复制到次要区域?

    根据微软的文章 https learn microsoft com en us azure event hubs event hubs geo dr 根据设计 事件中心异地灾难恢复不会复制数据 因此您无法在辅助事件中心上重复使用主事件中心的
  • Node.js 错误:找不到模块“请求”

    好的 这是一个常见的错误 我已经读过这篇文章node js 找不到模块 请求 请求模块安装在我的node modules中 我的完整节点应用程序是 var r require request var s r http www foo com
  • PowerShell:GetNewClosure() 和带验证的 Cmdlet

    我试图了解 GetNewClosure 如何在 PowerShell 2 中的脚本 cmdlet 上下文中工作 本质上 我有一个返回对象的函数 如下所示 function Get AnObject param CmdletBinding P
  • 如何处理删除函数中的 GORM 错误?

    我有这个功能 var db gorm DB func DeleteCategory id uint error var category Category category ID id result db Delete category f
  • 运行 chrome 扩展并在页面加载时将数据提交到 PHP 脚本(自动化该过程)

    我第一次使用 chrome 扩展进行网络爬行 我在 HTML 弹出窗口中获取数据 然后在单击按钮时将其提交给 PHP 脚本 现在我想在页面加载时执行此功能 因此 页面加载数据将被收集并将其提交给 PHP 脚本 我正在使用如下扩展 清单 js
  • 如何在Android中使用intentservice同时下载多个文件?

    我想创建一项与此类似的服务 参考来自Here 在 Android 中异步下载多个文件 public static class DownloadingService extends IntentService public static St
  • 线程中的 QTimer - 事件未处理?

    我有一个从 QThread 派生的对象 类定义包括 Q OBJECT 宏 我在线程中创建了一个计时器 这样我就可以在线程运行时偶尔进行一些检查 但是 超时事件从未发生 我也尝试过将计时器设为单次 但没有发出任何事件 默认情况下事件是在线程中
  • php 驱动程序 mongodb ,从未加载

    我已经安装了 MongoDB wamp 服务器 并且在 MongoDB 中添加了一个集合 然后我从下载了 php mongo 1 6 8 zipS3 gt 确定 zip 文件中有很多文件 但我需要哪一个 Windows 10 64 位 我找
  • iOS 中的透明环

    我的视图中有一个圆形头像 我这样做是这样的 self imageView layer cornerRadius 75 self imageView layer masksToBounds YES self imageView layer b
  • 自动 gmail 登录 [在 oAuth 期间] 因用户验证而被阻止

    此代码用于登录 Gmail public void login User user WebDriverWait wait new WebDriverWait driver 60 WebElement emailTextBox wait un
  • 如何正确地将元组序列化为键字典

    我有以下应用程序 显示字典的关键部分未发送到JsonConverter 但它被称为ToString 在 这对我来说是一个问题 因为我无法反序列化我的Json细绳 有任何想法吗 class Program static void Main s
  • 最好的通用 SVN 忽略模式?

    最好的 或尽可能好的 通用 SVN 忽略模式是什么 有许多不同的 IDE 编辑器 编译器 插件 平台等特定文件和一些 重叠 的文件类型 即 某些类型的项目需要 而其他类型的项目不需要 然而 无论您的开发环境的具体情况如何 您永远都不希望将大
  • 如何停止 Flex Canvas 上的子元素触发 Mouse Out 事件

    我正在使用 Canvas itemRenderer 作为用于显示图像的容器 请参阅下面的伪代码 image new Image image source data thumb this addChild image this addEven
  • 令人困惑的 python 星号表示法的双重使用(作为函数参数,或作为函数定义)

    我有点困惑 让我们创建一个名为 x 的函数 我知道通过在 y 之前添加 这意味着我们可以添加任意数量的参数 def x y return y 然而 Case 1 gt gt gt x 1 2 1 2 Case 2 让我们传递一个前面带有星号
  • Oracle XSLT:默认命名空间导致空标签

    我认为提出这个问题的最好方法是 如何为输出中的根元素指定默认命名空间 这样做