如何引用另一个 XSD 命名空间中的元素?

2024-02-29

我有一个跨两个 .XSD 文件定义的复杂类型。

父.xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:Parent"
     xmlns:emb="urn:Embedded" targetNamespace="urn:Parent" elementFormDefault="qualified"              
    attributeFormDefault="unqualified">

    <xs:import namespace="urn:Embedded" schemaLocation="Embedded.xsd"/>

    <xs:element name="ParentType">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="embedded" type="emb:EmbeddedType"></xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

嵌入式.xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns="urn:Embedded" targetNamespace="urn:Embedded" 
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">

    <xs:complexType name="EmbeddedType">
        <xs:sequence>
            <xs:element name="numeric" type="xs:int"></xs:element>
            <xs:element name="embedded" type="EmbeddedType" 
                minOccurs="0" maxOccurs="unbounded">
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

我的 XML 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>

    <ParentType xmlns="urn:Parent" xmlns:emb="urn:Embedded">
        <embedded>
            <emb:numeric>12</emb:numeric>
            <emb:embedded>
                <emb:numeric>5</emb:numeric>
            </emb:embedded>
        </embedded>
    </ParentType>

有没有办法改变事情,让两者都embedded元素有相同的前缀吗?我不能只是复制EmbeddedType由于外部原因进入 Parent.xsd。此外,一种消除所有使用的解决方案emb不加区别地添加前缀是行不通的。


如果你想要第一个embedded处于urn:Embedded命名空间以及第二个embedded,您可以通过以下方式将其移动到那里xs:element/@ref:

父级.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:Parent"
           xmlns:emb="urn:Embedded"
           targetNamespace="urn:Parent"
           elementFormDefault="qualified"              
           attributeFormDefault="unqualified">

  <xs:import namespace="urn:Embedded" schemaLocation="Embedded.xsd"/>

  <xs:element name="ParentType">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="emb:embedded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

嵌入式.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:emb="urn:Embedded"
           targetNamespace="urn:Embedded" 
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">

  <xs:element name="embedded" type="emb:EmbeddedType"/>

  <xs:complexType name="EmbeddedType">
    <xs:sequence>
      <xs:element name="numeric" type="xs:int"/>
      <xs:element name="embedded" type="emb:EmbeddedType" 
                  minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

XML

<?xml version="1.0" encoding="utf-8"?>
<ParentType xmlns="urn:Parent" 
            xmlns:emb="urn:Embedded"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:Parent Parent.xsd">
  <emb:embedded>
    <emb:numeric>12</emb:numeric>
    <emb:embedded>
      <emb:numeric>5</emb:numeric>
    </emb:embedded>
  </emb:embedded>
</ParentType>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何引用另一个 XSD 命名空间中的元素? 的相关文章

  • jQuery - 提高处理 XML 时的选择器性能

    我正在处理一个 XML 文件 当使用 XPath 样式选择器选择节点时 该文件的性能非常慢 这是运行特别慢的部分代码 for i 0 i
  • 有人可以推荐一个免费的 xslt 工具吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何成功地用 XML 中的批处理替换文本

    我尝试使用批处理在 XML 页面中替换字符串 但无法成功完全替换它 我有这个批处理代码 echo off setlocal EnableDelayedExpansion set search logLevel 3 set replace l
  • VBA XML V6.0 如何让它等待页面加载?

    我一直在努力寻找答案 但似乎找不到任何有用的东西 基本上 我是从一个网站上拉取的 当您在该页面上时 该网站会加载更多项目 我希望我的代码在加载完成后提取最终数据 但不知道如何让 XML httprequest 等待 Edited Sub p
  • 在线性布局内的 ScrollView 内并排对齐 TextView

    我有一个带有滚动视图的线性布局 我想保留它的当前格式 但只需将 textView2a 和 textView3a 并排放置 而不会破坏我当前的布局格式 我已经包含了我最近的尝试 但它们似乎不正确 提前致谢 Java菜鸟 当前有效的 XML
  • 主题以编程方式设置。如何重新加载 Activity 来应用

    如何在不重新启动整个应用程序的情况下应用主题 如果我这样做startActivity getIntent finish 活动退出并且不重新启动 是否可以简单地重新启动 重新创建活动来应用主题 它的顺序不正确 finish intent ne
  • 通过 XML 将重复事件添加到 Google 日历

    我正在尝试通过协议 API 将重复事件添加到我的日历中 我从在 Google 界面中创建的事件中获取了重复标记的语法 并将其用于我的创建请求中 这是我提交的内容
  • MSMQ接收和删除

    是否有任何选项可以在读取消息后将其从 MSMQ 中删除 比如 接收 删除可以作为原子操作运行吗 听起来您想查看下一条消息 然后在处理完成后接收它 Message message Queue Peek Queue ReceiveById me
  • 单元测试报告的 XML 格式规范(DTD、XSD..)

    许多工具为单元测试报告生成和使用相同的 XML 文件格式 例子 source http junitpdfreport cvs sourceforge net junitpdfreport src resources examples tes
  • 在 iOS 上使用 Web 服务的最佳方式?

    我想构建一个 iOS 应用程序 让您登录到网络服务 之后 应用程序将 当用户选择时 通过 https 发送登录名 密码以及请求的变量 例如 在请求 新闻更新 后 它将收到 XML 格式的请求信息 类似于
  • 在 JAVA 中使用 SAX 解析器从 XML 文件中提取文本节点

    因此 我目前正在使用 SAX 尝试从我正在处理的大量 xml 文档中提取一些信息 到目前为止 提取属性值确实很容易 但是 我不知道如何从文本节点中提取实际值 例如 在给定的 XML 文档中
  • REXX 或 JCL 中的 XML 处理

    在 PS 文件中 我有如下 XML 数据 For ex
  • 我想在java中使用XQuery进行Xml处理

    我想用XQuery用于从 java 中的 Xml 获取数据 但我没有得到需要为此添加哪个 Jar 我在谷歌上搜索了很多 但没有得到任何有用的例子 例如我得到以下链接 https docs oracle com database 121 AD
  • xsd 类型的 JAXB(取消)编组:xsd:base64Binary 和 xsd:hexBinary

    JAXB 映射两者xsd base64Binary and xsd hexBinary类型为byte 鉴于我有一个模式 一个 DOM 元素来表示这些类型 例如
  • 如何使用C#在asp.net中下载xml文件

    我正在使用网络应用程序ASP NET 与 MVC3 我是 mvc3 的新手 我的网页上有一个下载按钮 当我要单击下载按钮时 我希望能够打开该 XML 文件 我尝试过一些代码更改动作结果但我没有打开文件 通过使用下面提到的代码 我收到一个下载
  • 自定义 XML 文件比较

    我看过很多关于 XML 比较的帖子 但我看过的没有一个能解决我的问题 我们有一些 XML 格式的文本文档 产品描述 带有标题和段落 正在更新 即版本化 我的任务是制作变更摘要 也就是说 我们想要获取两个连续的文件并生成第三个 标题结构 大纲
  • Java 中的 XPath 节点集

    我在 eclipse 中有这段代码 NodeSet nodes NodeSet xPath evaluate expression inputSource XPathConstants NODESET 它给我 NodeSet 上的编译时错误
  • Text::平衡和多行 xml

    看来我有点失落了 我需要解析一个大的 大约 100 mb 且相当难看的 xml 文件 如果我使用parsefile 它返回错误 文档元素后的垃圾 但它会很乐意解析文件的较小元素 所以我决定将文件分解为元素并解析它们 由于不鼓励使用正则表达式
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • JAXB - 列表<可序列化>?

    我使用 xjc 制作了一些课程 public class MyType XmlElementRefs XmlElementRef name MyInnerType type JAXBElement class required false

随机推荐