將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規則的簡單方法。 你可以在網上找到很多這樣的解析器。