XInclude:模块化XML文档的动态组装与事务性合并
超越实体引用,学习如何使用XInclude将独立维护的XML片段合并为一个复合文档,并处理回退、编码以及XPointer片段定位。 · 难度:入门 · +10XP
XInclude:模块化XML文档的动态组装与事务性合并
大型文档(如DocBook书籍或配置集)需要从多个源文件拼接内容。传统实体引用无法处理非XML资源且不支持条件包含。本教程从XInclude的基础语法——xi:include元素的href、parse、encoding属性开始,重点教授如何处理包含远程资源失败时的fallback机制,以及使用xpointer属性精准引用外部XML元素树的子部分。接着进阶到事务性包含:在包含过程中保持源文件更新同步,并通过XSLT管道进行后处理。最后展示XInclude与Schema验证的结合,确保组装文档仍满足所有约束。
<book xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="chapters/intro.xml" parse="xml"/>
<xi:include href="chapters/advanced.xml" parse="xml">
<xi:fallback><para>Chapter missing</para></xi:fallback>
</xi:include>
</book>