微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XML – 引用其他XML文件

我是XML的新手,所以这可能是一个相当容易的答案。我想知道是否有一种从其他XML文件中引用外部XML文件的标准方法。让我举个例子。假设你有一个文件来定义一个容纳大量数据的单个对象:
<person>
    <name>John</name>
    <age>18</age>
    <hair>brown</hair>
    <eyes>Blue</eyes>
</person>

为了这个问题,假装该人拥有其他信息。假装文件就像10 MB。

现在,假设你有另一个XML文件定义了一个组:

<group>
    <person>
        <name>John</name>
        <age>18</age>
        <hair>brown</hair>
        <eyes>Blue</eyes>
    </person>
    <person>
        <name>Kim</name>
        <age>21</age>
        <hair>Blue</hair>
        <eyes>Green</eyes>
    </person>
    <person>
        <name>Sean</name>
        <age>22</age>
        <hair>Black</hair>
        <eyes>brown</eyes>
    </person>
</group>

正如你所看到的,如果Person的数量非常大,Group文件将会非常大。所以,如果我们有一些像John.xml这样的东西,有没有一个标准的方法来引用它在Group.xml中没有明确定义所有的John的数据?我相信这是一个非常广泛的话题,请随时将我链接到任何相关的网页。谢谢!

标准

XInclude是唯一具有任何级别支持的标准。

>几个XML编辑器,包括Oxygenxmlspy支持
>几个XML解析器,包括Xerces,也支持它,还有.net端口。
>几个XML工具,如Saxon支持它,用于Java和.net

Wikipedia article on XInclude有一些很好的例子。

XLink一个切向相关的标准,不是真正包含文档,更多的是引用其他文档中的部分。没有很好的支持

备择方案

如果你担心的大小,有几种方法可以去:

>使用流式XML处理器,例如DataDirect XQuery(或者在较小程度上,Saxon 9.3 EE,它只需要在内存中保留尽可能多的信息来解决查询
>使用XML数据库,如MarkLogiceXist
>使用一个XML文件列出其他XML文件名称,这些文件用XQuery或XSLT编写,然后使用doc()函数和进程进行读取。 (除非你的处理器是流媒体的,或者有办法处理文件,如DDXQSaxon那样,你仍然会遇到相同大小的问题。)

原文地址:https://www.jb51.cc/xml/293211.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。