加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML – 引用其他XML文件

发布时间:2020-12-16 08:00:39 所属栏目:百科 来源:网络整理
导读:我是XML的新手,所以这可能是一个相当容易的答案。我想知道是否有一种从其他XML文件中引用外部XML文件的标准方法。让我举个例子。假设你有一个文件来定义一个容纳大量数据的单个对象: person nameJohn/name age18/age hairBrown/hair eyesBlue/eyes/person
我是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编辑器,包括Oxygen和xmlspy支持。
>几个XML解析器,包括Xerces,也支持它,还有.net端口。
>几个XML工具,如Saxon支持它,用于Java和.net。

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

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

备择方案

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读