我是XML的新手,所以这可能是一个相当容易回答的问题.我想知道是否有一种从其他XML文件中引用外部XML文件的标准方法.让我举个例子.假设您有一个文件,它定义了一个包含大量数据的对象:
<person>
<name>John</name>
<age>18</age>
<hair>Brown</hair>
<eyes>Blue</eyes>
</person>
Run Code Online (Sandbox Code Playgroud)
为了这个问题,假装该人拥有大量其他信息.假装文件像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>
Run Code Online (Sandbox Code Playgroud)
如您所见,如果Person非常大,那么Group文件将非常大.那么,如果我们有类似John.xml的东西,有没有一种标准的方法在Group.xml中引用它而不明确定义John的所有数据?我确信这是一个非常广泛的主题,所以请随时将我链接到任何相关的网页.谢谢!
lav*_*nio 12
XInclude是唯一具有任何级别支持的标准.
关于XInclude的维基百科文章中有一些很好的例子.
XLink是一个与切向相关的标准,不是真正用于包含文档,而是用于引用其他文档中的部分.它得不到很好的支持.
如果您担心尺寸,可以采用以下几种方法:
doc()函数和进程读取.(除非你的处理器是流媒体或有办法处理文件,如DDXQ或Saxon那样,你仍然会遇到同样大小的问题.)有两种“标准”方式可以执行所需的操作,即XLink和XInclude(取决于您要执行的操作),尽管您必须确保拥有可以提取外部引用的处理器。大多数XML库都没有启用此功能。
然后,你可以做一些类似:
<group>
<personlink xlink:href="person.xml" xlink:show="embed" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</group>
Run Code Online (Sandbox Code Playgroud)
但是,您可能实际上并不需要这个。如果您需要大文档中的一部分信息,则可以轻松地使用XSLT或XQuery修剪所需的部分。您可以将这种方法与SAX解析(基于事件,并且在内存中没有整个文档)一起使用,以扩展您的应用程序以处理相当大的文档。
即使在使用DOM时,我也没有开始看到大型文档的问题,直到它们在几十兆字节的范围内。
| 归档时间: |
|
| 查看次数: |
17576 次 |
| 最近记录: |