技术信息开发的技术基础之XML

发布时间 2023-09-07 13:46:55作者: 蹇爱黄

技术写作一般只接触过swagger或者DOxygen这样面向开发人员的文档,面向最终客户的文档,就没有太好用的工具或者很好的解决方案。

一般也就是一些手册,联机帮助,chm,guided tour,这些文档以常见的pdf、word、html来发布,中间还会有评审和翻译的需求,就没了很简单的感觉,但是这些工具功能齐全的价格昂贵,简单的还没有idea这种编码工具用法简单。也不排除我水平不够的原因。

1.技术信息开发技术基础

XML是重要的数据存储方式,

作为技术写作从业人员,需要了解XML的基本技术,具体如下:

  • XML
  • CSS/XSLT
  • DTD/Schema

创建XML

<BusinessCard>
    <Name>Gao Zhijun</Name>
    <phone type="mobile">+86 10 8264 9812</phone>
    <phone type="work">+86 10 6127 3510</phone>
    <phone type="fax">+86 10 6127 3510</phone>
    <email>gaozhijun@ss.pku.edu.cn</email>
</BusinessCard>

创建CSS(层叠样式表Cascading Style Sheets,用来表现HTML或这XML等文件的样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化)

BusinessCard {
    font-family: Arial, Helvetica, sans-serif;
    background-color: #DACFE5;
    width: 300px;
    display: block;
    padding: 10pt;
    border: 1px solid #0D3427;
    margin: 5px;
    text-align: left;
}

Name {
    color: #0D3427;
    font-weight: bold;
    font-size: 140%;
    display: block;
    margin-bottom: 3%;
}

phone {
    font-size: 90%;
    color: #523819;
    font-size: 90%;
    display: block;
}

email {
    color: #0D3427;
    font-size: 90%;
    font-weight: bold;
    display: block;
    margin-top: 3%;
}

关联CSS至XML

在XML文档中,问号(?)的作用是用来声明XML文档的版本和编码方式。这个问号通常被称为"XML声明",它位于XML文档的开头,并且是可选的。

例如,是一个常见的XML声明,它指定了XML文档的版本为1.0,并且使用UTF-8编码方式。

在给定的例子中,是一个XML样式表声明,它指定了应该使用名为"businesscard.css"的CSS样式表来渲染这个XML文档。

<?xml-stylesheet type="text/css" href="businesscard.css"?>


### 创建页面内DTD
DTD是文档类型定义的一套关于标记符的语法规则,用于进行程序间的数据交换。

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。

DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

内部的 DOCTYPE 声明
假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中:

带有 DTD 的 XML 文档实例(请在 IE5 以及更高的版本打开,并选择查看源代码):

<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>

上面的 DTD 解释如下:

  • !DOCTYPE note (第二行)定义此文档是 note 类型的文档。
  • !ELstrongENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body"
  • !ELstrongENT to (第四行)定义 to 元素为 "#PCDATA" 类型
  • !ELstrongENT from (第五行)定义 frome 元素为 "#PCDATA" 类型
  • !ELstrongENT heading (第六行)定义 heading 元素为 "#PCDATA" 类型
  • !ELstrongENT body (第七行)定义 body 元素为 "#PCDATA" 类型
  • PCDATA (Parsed Character Data),是一种元素类型,简单解释就是元素内只有文本,没有子元素。

外部文档声明
假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:

<!DOCTYPE root-element SYSTEM "filename">

这个 XML 文档和上面的 XML 文档相同,但是拥有一个外部的 DTD: (点击打开该文件,并选择"查看源代码"命令。)

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend</body>
</note>

这是包含 DTD 的 "note.dtd" 文件:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

为什么使用 DTD?
通过 DTD,您的每一个 XML 文件均可携带一个有关其自身格式的描述。

通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据。

而您的应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据。

您还可以使用 DTD 来验证您自身的数据。

创建独立DTD并关联至XML

<!DOCTYPE BusinessCard SYSTEM "businesscard.dtd">