0
我對XML很陌生,我不明白爲什麼我會收到這些警告或它們的含義。我正在定義代表遊戲列表的標籤。這是我的dtd文件和IDE已經識別的警告。定義XML標籤/名稱空間?無法識別的警告
做這些警告的意思是,我如何解決這些問題?謝謝!
我對XML很陌生,我不明白爲什麼我會收到這些警告或它們的含義。我正在定義代表遊戲列表的標籤。這是我的dtd文件和IDE已經識別的警告。定義XML標籤/名稱空間?無法識別的警告
做這些警告的意思是,我如何解決這些問題?謝謝!
每個錯誤都是關於未聲明的元素。要解決這些特定的錯誤,您需要聲明DTD中引用的每個元素。 (添加<!ELEMENT
聲明爲name
,developer
,engine
等)
此外,你必須name
,developer
,engine
等聲明爲屬性(<!ATTLIST
)。
除了僅僅解決錯誤之外,你應該決定你想成爲一個元素,以及你想成爲一個屬性。
以下是一些示例。 (該DTD和XML在一起,使之更容易測試(DTD是在內部子集)的DTD的可被分離。):
使用元素
<!DOCTYPE gamelist [
<!ELEMENT gamelist (game*)>
<!ELEMENT game (data,metadata)>
<!ELEMENT data (name,developer,engine?,releasedate?)>
<!ELEMENT metadata (hoursplayed?,lastplayed?,lastdataupdate)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT developer (#PCDATA)>
<!ELEMENT engine (#PCDATA)>
<!ELEMENT releasedate (#PCDATA)>
<!ELEMENT hoursplayed (#PCDATA)>
<!ELEMENT lastplayed (#PCDATA)>
<!ELEMENT lastdataupdate (#PCDATA)>
]>
<gamelist>
<game>
<data>
<name></name>
<developer></developer>
<engine></engine>
<releasedate></releasedate>
</data>
<metadata>
<hoursplayed></hoursplayed>
<lastplayed></lastplayed>
<lastdataupdate></lastdataupdate>
</metadata>
</game>
</gamelist>
使用屬性
<!DOCTYPE gamelist [
<!ELEMENT gamelist (game*)>
<!ELEMENT game (data,metadata)>
<!ELEMENT data EMPTY>
<!ATTLIST data
name CDATA #REQUIRED
developer CDATA #REQUIRED
engine CDATA #IMPLIED
releasedate CDATA #IMPLIED >
<!ELEMENT metadata EMPTY>
<!ATTLIST metadata
hoursplayed CDATA #IMPLIED
lastplayed CDATA #IMPLIED
lastdataupdate CDATA #REQUIRED>
]>
<gamelist>
<game>
<data name="" developer="" engine="" releasedate=""/>
<metadata hoursplayed="" lastplayed="" lastdataupdate=""/>
</game>
</gamelist>
這裏有一些鏈接,可以幫助:
XML Essentials(第一從這裏開始。)
XML 1.0(特別是 「Logical Structures」。)(另外:XML 1.1( 「Logical Structures」))
你給我看一個簡單的例子?假設我想將名稱定義爲必需的字符串(我只是在網上找到很多樣式,而且我無法區分DTD和XML的其他用途)。 –
@Iatesometau - 請參閱我的更新。 –