XML 架构导致 xml 元素没有命名空间

2023-12-15

我在一个非常简单的模式上遇到了一些麻烦。在架构指定的 xml 正文中,根元素的第一个子元素被指定为具有 xmlns="",这给我带来了验证问题。

我反复搜索并尝试找出发生这种情况的原因,但没有取得任何成功。这对我的服务器代码造成了更大的问题,因为我正在编写 xml 正文,并且由于我的元素没有 xmlns="",它的验证失败。

我想了解为什么 xmlns="" 是由架构定义产生的以及如何解决此问题。

这是架构:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.example.org" 
    xmlns="http://www.example.org">

    <xs:simpleType name="XYZ">
        <xs:restriction base="xs:string">
            <xs:maxLength value="10"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="ABC">
        <xs:sequence>
            <xs:element name="PQR" type="XYZ"/>
        </xs:sequence>
    </xs:complexType>

    <xs:element name="A1">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="result" type="ABC"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>

基于此架构,创建以下文档:

<?xml version="1.0" encoding="UTF-8"?>
<A1 xmlns="http://www.example.org">
    <result xmlns="">
        <PQR></PQR>
    </result>
</A1>

我想要这个:

<?xml version="1.0" encoding="UTF-8"?>
<A1 xmlns="http://www.example.org">
    <result>
        <PQR></PQR>
    </result>
</A1>

我已经研究这个并尝试了大约一天的事情。不应该是<result>元素只是目标命名空间的一部分,使得 xmlns="" 不必要吗?

此外,当我尝试验证它时,我收到以下错误:

System ID: /Users/dev/Desktop/Untitled3.xml
Main validation file: /Users/dev/Desktop/Untitled3.xml
Schema: /Users/dev/Desktop/test.xsd
Engine name: Xerces
Severity: error
Description: cvc-complex-type.2.4.a: Invalid content was found starting with element '{"http://www.example.org":PQR}'. One of '{PQR}' is expected.
Start location: 4:10
End location: 4:13
URL: http://www.w3.org/TR/xmlschema-1/#cvc-complex-type

Adding

elementFormDefault="qualified"

to your xs:schema元素应该可以解决问题。如果我进行这个小修改,然后让 Oxygen 生成一个示例 XML 文档,结果是

<?xml version="1.0" encoding="UTF-8"?>
<A1 xmlns="http://www.example.org">
    <result>
        <PQR>PQR0</PQR>
    </result>
</A1>

参见例如这个问题和答案解释为什么这有帮助,但其要点是:elementFormDefault="qualified"告诉验证处理器您在 XSD 中提到的元素应该位于目标命名空间中。默认为elementFormDefault是“不合格”。

如果将其设置为“unqualified”,则默认情况下所有元素都将被假定为不位于任何命名空间中,但 XML 文档的最外层元素除外,该元素将被假定具有您在此处指定的命名空间:

xmlns="http://www.example.org"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XML 架构导致 xml 元素没有命名空间 的相关文章

随机推荐

  • 如何在 R 中正确嵌套 Paste() 函数?

    你能告诉我为什么吗 paste paste c first second collapse third collapse and 给我 first second third 代替 first second and third 获得第二个输出
  • 如何在Python中使用mysqldump和mysql复制数据库?

    我正在编写一个简单的 Python 脚本来复制 MySQL 数据库 我正在尝试根据以下问题及其答案复制数据库 不使用 mysqldump 复制数据库 python 子进程和 mysqldump and Python 子进程 mysqldum
  • Java中谷歌计算引擎与数据存储和云存储的通信

    我有 GAE 应用程序 它在 Google Cloud Datastore 中创建一些数据并将一些二进制文件存储到 Google Cloud Storage 让我们调用该应用程序WebApp 现在 我在 Google Cloud Stora
  • 静态上下文中的本地类实例创建表达式

    The JLS 15 9 2告诉我们如何确定封闭实例 令 C 为正在实例化的类 并令 i 为正在创建的实例 如果 C 是一个内部类 那么我可能有一个直接封闭的 实例 8 1 3 确定如下 如果 C 是本地类 则 如果 C 出现在静态上下文中
  • 詹金斯文本查找器无法成功我的构建

    我使用 SSH 插件在 Linux 服务器上运行命令 我使用 SSH 启动了一个脚本 该脚本需要超过 1 小时的时间才能运行 我不想等待那么多时间 所以我在 Exec 超时处设置了 30 秒的时间 但它显示错误 错误 发布时出现异常 异常消
  • 在 kubernetes 中使用 mongoose 连接到 mongodb

    我有一个使用 docker compose 开发和测试的微服务 现在我想将它部署到kubernetes 我的 docker compose 文件的一部分如下所示 tasksdb container name tasks db image m
  • 如何处理无法加载的页面并在 Watir-Webdriver 中继续测试

    我已经寻找其他问题的答案 但找不到 我的问题是 我有许多需要测试的结果 但当我点击不加载页面的 URL 时 我的脚本不断失败 以下网址无法加载 当此 URL 未加载时 我想继续测试 我尝试过使用 begin Timeout timeout
  • Java - Spark SQL DataFrame 映射功能不起作用

    在 Spark SQL 中 当我尝试在 DataFrame 上使用映射函数时 出现以下错误 DataFrame 类型中的方法 map Function1 ClassTag 不适用于参数 new Function 我也在关注 Spark 1
  • 还有比“打开类型”更好的选择吗?

    看来 C 不能switch在类型上 我收集的没有作为特殊情况添加 因为is关系意味着不止一种不同的case可能适用 除此之外还有更好的方法来模拟打开类型吗 void Foo object o if o is A A o Hop else i
  • 在 Cmake 中,如何在不清理目标文件的情况下使用新源文件更新 makefile

    我正在使用 cmake 我刚刚添加了新的源文件 我想将新的源文件包含在 cmake 生成的 makefile 中以包含在构建中 我尝试了rebuild cache但没有任何反应 Thanks 这取决于您的 cmake 文件是如何构建的 如果
  • 设置像素格式

    有人告诉我打电话getWindow setFormat PixelFormat XXXX 应将活动中窗口的像素格式设置为 XXXX 例如RGBA 8888 我试过打电话getWindow setFormat PixelFormat XXXX
  • cmd.exe 重定向运算符的顺序和位置

    首先关于顺序 以下作品用于重定向stdout and strerr to nul command 1 gt nul 2 gt 1 以下则没有 command 2 gt 1 1 gt nul 为什么顺序很重要 如何用人类可以理解的语言来解读这
  • 将 CSV 文件转换为 JSON 字典?

    我需要将大型 CSV 数据集转换为 JSON 但输出应该是这样的 JSON 字典 var products crystal description This is a crystal price 2 95 emerald descripti
  • 动态 UITableViewCell 高度

    我试图让我的单元格根据单元格中的文本量动态改变高度 目前我有文字换行 但是一旦单元格内容太多 如果它转到第三行 你看不到第二行之后的任何内容 这就是我到目前为止所拥有的 希望有人能看到我是否遗漏了什么或做错了什么 任何帮助将不胜感激 UIT
  • 如何在 Windows 上的 Jenkins 配置中设置 PATH 环境变量?

    当我在 Windows Server 2008 上运行构建过程时 它失败并显示如下错误消息 无法运行程序 foo CreateProcess error 2 系统找不到指定的文件 我已经在 Ubuntu Server 上遇到了类似的问题 并
  • AJAX ModalPopup 在页面内容后面(下方)弹出(负 z-index)

    我在 AJAX Control Toolkit 版本 40412 中遇到 AJAX ModalPopupExtender 问题 http ajaxcontroltoolkit codeplex com releases view 43475
  • 如何找到pandas中2个不同数据帧中2个点之间的距离?

    我有两个数据框 每个数据框都有一组坐标 Dataframe 1是生物量站点列表 坐标位于 lat 和 lng 列中 Dataframe 2是邮政编码坐标列表 链接到销售价格 坐标位于 pc lat 和 pc lng 列中 我用过这个计算器问
  • 需要将Ghostscript安装到Mac PATH

    Camelot 出现错误 未安装 Ghostscript 尝试了一切 问题是它没有添加到路径中 gs安装在机器上 Camelot 安装页面的以下检查失败https camelot py readthedocs io en master us
  • 如何在Python中打印不带空格的变量字符串(最少的编码!)[重复]

    这个问题在这里已经有答案了 我有类似的东西 print n id var1 var2 var3 var4 它为每个变量打印空格 1 john h johnny mba 我想要这样的东西 1 john h johnny mba 我有 20 个
  • XML 架构导致 xml 元素没有命名空间

    我在一个非常简单的模式上遇到了一些麻烦 在架构指定的 xml 正文中 根元素的第一个子元素被指定为具有 xmlns 这给我带来了验证问题 我反复搜索并尝试找出发生这种情况的原因 但没有取得任何成功 这对我的服务器代码造成了更大的问题 因为我