首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助理解来自DITA-OT xsl的xsl导入语句

需要帮助理解来自DITA-OT xsl的xsl导入语句
EN

Stack Overflow用户
提问于 2015-07-21 10:01:30
回答 1查看 244关注 0票数 0

声明如下:

代码语言:javascript
复制
<xsl:import href="plugin:org.dita.xhtml:xsl/dita2html-base.xsl"/>

我是XSL的新手。我知道href属性需要一个URI,但是在上面的语句中,href值是如何解析为URI的。这段代码是DITA-OT中xhtml插件xsl的一部分。有多个这样的语句。这些是根目录中的相对路径吗?DITA-OT代码如何解析这些路径?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-22 09:41:29

如果您查看您的DITA-OT的根安装文件夹,您将发现一个名为catalog-tua.xml的文件。这是一个XML目录,旨在为XML实体提供解析方案。摘自XML目录规范的摘要:

此OASIS标准定义了将外部标识符和任意URI引用映射到URI引用的实体目录。

打开目录-tua.xml文件,并搜索plugin:org.dita.xhtml。你会发现这个条目:

代码语言:javascript
复制
<rewriteURI uriStartString='plugin:org.dita.xhtml:' rewritePrefix='plugins/org.dita.xhtml/'/>

因此,任何以<xsl:import href="...">开头的引用uri (以及<xsl:include href="...">document()函数)都将被“重定向”文件夹plugins/org.dita.xhtml/,以便在您的示例中搜索相对于DITA安装文件夹的plugins/org.dita.xhtml/xsl/dita2html-base.xsl文件。

,但是这个目录是如何使用的?

例如,在$DITAOT_DIR$\plugins\org.dita.xhtml\build_general.xml中(它在DITA-OT中广泛使用,因此可能会在几乎所有的build_xxx.xml文件中找到这些说明),您会发现如下所示:

代码语言:javascript
复制
<xslt basedir="${dita.temp.dir}" destdir="${output.dir}" includesfile="${dita.temp.dir}${file.separator}${fullditatopicfile}" reloadstylesheet="${dita.xhtml.reloadstylesheet}" classpathref="dost.class.path" extension="${out.ext}" style="${args.xsl}" filenameparameter="FILENAME" filedirparameter="FILEDIR">

  <!-- A huge bunch of parameters comes here ... -->
  <param name="[...]" expression="[...]"></param>

  <xmlcatalog refid="dita.catalog"></xmlcatalog>
</xslt>

这意味着使用目录调用XSL转换(<xslt>这里是蚂蚁任务),该目录将为转换期间所需的所有资源提供适当的URI映射。显然,dita.catalog是对其他地方声明的目录的引用。

打开$DITAOT_DIR$\plugins\org.dita.basebuild_init.xml,您会发现以下内容:

代码语言:javascript
复制
<xmlcatalog id="dita.catalog">
  <catalogpath path="${dita.plugin.org.dita.base.dir}/catalog-dita.xml"/>
</xmlcatalog>

它指向开始时已打开的XML目录。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31535950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档