学习如何编写完善和有效的XML
有时,通过查看示例,可以更轻松地了解如何编写格式良好的XML。 Web Writer通讯是使用XML格式编写的 - 我将其称为AML或关于标记语言(请参阅图!)。 虽然这是一个工作文档,但它实际上并不是一个格式良好的或有效的XML文档。
合式
有一些特定的规则来创建格式良好的XML文档:
- XML声明必须在每个文档中首先出现。
- 评论在标签内无效。 注释可能不包含连续两个连字符,除了注释的开头和结尾。
- 标签必须有一个结束标签,或者在单身标签本身中关闭,例如
。 - 标记的所有属性都必须加引号,最好是双引号,除非属性本身包含双引号。
- 每个XML文档都必须包含一个完全包含所有其他元素的元素。
文档只有两个问题导致它不完整:
AML文档首先需要的是一个XML声明语句。
<?xml version =“1.0”?>另一个问题是没有一个元素完全包含所有其他元素。 为了解决这个问题,我将添加一个外部容器元素:
<通讯> 通讯>进行这两个简单的更改(并确保所有元素仅包含CDATA)将会将非格式良好的文档转换为格式良好的文档。
根据文档类型定义(DTD)或XML模式验证有效的XML文档。 这些是由开发人员或定义XML文档语义的标准组织创建的一组规则。 这些告诉计算机如何处理标记。
在关于标记语言的情况下,由于这不是标准的XML语言,如XHTML或SMIL,DTD将由开发者创建。 该DTD很可能与XML文档位于同一服务器上,并在文档顶部引用。
在开始为文档开发DTD或Schema之前,您应该认识到,只需通过良构,XML文档就是自描述的,因此不需要DTD。
例如,在我们格式良好的反洗钱文件中,有以下标签:
- <通讯>
-
- <文件名>
-
-
-
如果您熟悉Web Writer时事通讯,您可能会认识到通讯的不同部分。 这使得使用相同的标准格式创建新的XML文档变得非常容易。 我知道我会始终在标签中放置完整的长标题,并在标签中放置第一部分的网址。
的DTD
如果您需要编写一个有效的XML文档,无论是使用这些数据还是处理它,都可以使用标签将其包含在文档中。 在此标记中,您可以定义文档中的基本XML标记以及DTD的位置(通常是Web URI)。 例如:
<!DOCTYPE newsletter SYSTEM“aml-newsletter.dtd”>关于DTD声明的一个好处是,您可以声明DTD对于XML文档带有“SYSTEM”的系统是本地的。 您还可以指向一个公共DTD,例如使用HTML 4.0文档:
<!DOCTYPE HTML PUBLIC“ - // W3C // DTD HTML 4.0 Transitional // EN”>当你同时使用时,你告诉文档使用特定的DTD(公共标识符)以及在哪里找到它(系统标识符)。
最后,您可以在DOCTYPE标签中直接在文档中包含内部DTD。 例如(这不是针对AML文档的完整DTD):
<!DOCTYPE newsletter [<!ENTITY long_title(#PCDATA)> <!ENTITY文件名(#PCDATA> <!ENTITY卷(#PCDATA)> <!ENTITY meta_title(#PCDATA)> <!ENTITY meta_description(#PCDATA)> < !ENTITY meta_keywords(#PCDATA)> <!ENTITY section1(section1_title | section1_linktitle1 | section1_url1 | section1_annotation1 | section1_toc1>]>XML架构
为了创建一个有效的XML文档,您还可以使用XML Schema文档来定义您的XML。 XML Schema是描述XML文档的XML文档。 了解如何编写架构。
注意
仅指向DTD或XML Schema是不够的。 文档中的XML必须遵循DTD或Schema中的规则。 使用验证解析器是检查XML是否遵循DTD规则的简单方法。 你可以在网上找到很多这样的解析器。