将XML文件转换为格式良好

学习如何编写完善和有效的XML

有时,通过查看示例,可以更轻松地了解如何编写格式良好的XML。 Web Writer通讯是使用XML格式编写的 - 我将其称为AML或关于标记语言(请参阅图!)。 虽然这是一个工作文档,但它实际上并不是一个格式良好的或有效的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规则的简单方法。 你可以在网上找到很多这样的解析器。