規則總是有例外的。 我的關於屬性的規則有一個例外: 有時我為元素分配了ID 引用值。這些 ID引用值可以用來訪問 XML元素,其方法與Html中的NAME 或 ID 屬性基本上完全一樣。下面這個例子就說明這一點:
< messages>
< note ID="501">
< to>Tove< /to>
< from>Jani< /from>
< heading>Reminder< /heading>
< body>Don't forget me this weekend!< /body>
< /note>
< note ID="502">
< to>Jani< /to>
< from>Tove< /from>
< heading>Re: Reminder< /heading>
< body>I will not!< /body>
< /note>
< /messages>
這些例子中的ID 僅僅是一個計數器,或是一個唯一的識別號,用來識別XML文件中不同的注釋,並不是注釋數據的一部分。 這裡我試圖說明的是,元數據 (關於數據的數據) 應該作為屬性來存儲,而數據本身應該作為元素來存儲。
XML 確認
語法正確的XML是格式良好的 XML。用一個DTD確認的XML叫做有效XML。
“格式良好的” XML 文檔
一個“格式良好的” XML 文檔有著正確的XML語法。
< ?XML version="1.0"?>
< note>
< to>Tove< /to>
< from>Jani< /from>
< heading>Reminder< /heading>
< body>Don't forget me this weekend!< /body>
< /note>
“有效的” XML 文檔
一個“有效的” XML 文檔同時還要符合 DTD。 一個“有效的” XML 文檔是一個“格式良好的” XML 文檔,同時它還要符合文檔類型定義(DTD) 的規則。
< ?XML version="1.0"?>
< !DOCTYPE note SYSTEM "InternalNote.dtd">
< note>
< to>Tove< /to>
< from>Jani< /from>
< heading>Reminder< /heading>
< body>Don't forget me this weekend!< /body>
< /note>
XML DTD
一個 DTD 定義了一個XML 文檔中的合法元素。 DTD 的目的是定義一個XML文檔的合法結構區。它用一個合法元素的列表來定義文檔的結構。你可以在W3Schools' DTD School中閱讀更多的關於DTD以及如何確認你的XML文檔的內容。
XML 計劃
XSchema 是一個基於XML 的 DTD的替代品。 W3C 支持一種稱為XML Schema的DTD替代品。關於XML Schema 的更多內容可以在 W3Schools' Schema School 中找到。
錯誤會使你停下來
XML 文檔中的錯誤會停止 XML 程序。 W3C XML 規范規定,當一個程序中發現了確認錯誤時,它不能再繼續處理一個 XML文檔。 原因是XML軟件應該易於編寫,而所有的XML 文檔都應該相互兼容。
用HTML,你有可能創建有許多錯誤的文檔 (比如說你有時會忘記一個結束標記)。HTML浏覽器都很大並且不相兼容的一個主要原因是,當它們遇到一個Html錯誤時,它們都有各自不同的方法來描繪出文檔看起來應該是個什麼樣子。而用 XML 這是不可能的。