DITA标记内容被忽略或包含非DITA内容

时间:2016-02-07 16:34:14

标签: xml dita

问题:在DITA文档中包含非DITA内容的正确标记是否存在,是什么?

我正在寻找的功能是一个标记,比如<ignored></ignored>,以便任何内容,包括<>&甚至其他标记,它被解释为纯文本,或者可能被解释为另一种语言。

例如,在HTML中我可以使用

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    This is some text 
    <script> that gets bold <b> after this tag </script> 
    that doesn't get bold</b><br/>
    This text <b>did get bold</b>
  </body>
</html>

忽略<script></script>标记内的代码。浏览器应显示:

这是一些没有大胆的文字 此文确实变为粗体

我认为DITA没有script标记,或者至少我没有在language reference中看到它。

2 个答案:

答案 0 :(得分:2)

这取决于你想要实现的目标。也许<code>就是你要找的东西。否则,您需要<data>或基于<data>的新元素。

规范说明了<data>

&#34;默认处理应将内容视为未知类型的元数据并忽略它以进行渲染,但自定义处理可能与名称属性或专用元素匹配,并使用该元素进行自动操作或格式化与身体流动。&#34;

答案 1 :(得分:2)

这有两个部分:

  • 如何在XML中包含任意文本(使用CDATA标记的部分)
  • 用什么元素来表示内容不是DITA?

标记的部分为<![CDATA[ ... ]]>

有几种方法可以满足您的要求,但<data>不是其中之一。 <data>元素是语义元数据,您拥有的不是元数据而是内容。

正如克里斯所说,专业化可能是最好的解决方案,但并不是必需的。

您可以在任何元素上使用@outputclass来表示需要进行特殊处理,例如:

<fig><title>My Math Stuff</title>
<p outputclass="latex">{LaTex content here}</p>
</fig>

由您来实现处理以将<p>转换为输出数学或作为XML到XML转换的一部分。

如果你想专门研究最佳路线,那就是<foreign>专攻。根据定义,<foreign>元素包含不使用DITA定义的标记的内容。

请注意,DITA 1.3包含与MathML的内置集成,因此如果您将LaTeX转换为MathML,则无需为此重新创建特殊标记。

此外,DITA 1.3方程域为方程提供了一般容器元素,其中方程元素的内容是方程的一个或多个表示。表示可以是任何东西:MathML标记,图像引用,或者在您的情况下,是等式的原始LaTeX定义。