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 - 请参阅我的更新。 –