说我有类似的东西
<offor>Ubuntu Juju is all that you need
<charm Id="lisp" \>.</offor><offor>This one is the name thing</offor>
这是我的DTD
<!ELEMENT offor (#PCDATA, charm?) >
<!ELEMENT charm EMPTY>
<!ATTLIST id ID #REQUIRED>
有人可以在这帮助我吗?我的DTD无效
答案 0 :(得分:5)
您的XML和DTD都存在一些问题:
您没有根元素。我在下面的示例中添加了<doc>
。
关闭\
时,您使用了反斜杠(/
)而不是正斜杠(charm
)。
如果您有mixed content,则无法使用#PCDATA
指定,
和子元素的顺序。您必须使用|
(或)和星号(*
)。
在ATTLIST
声明中,您忘记添加声明属性的元素的名称。
XML中的Id
属性与DTD中属性名称id
的大小写不匹配。
以下是更新的XML和DTD的示例。 DTD位于内部子集中,但如果用作外部DTD,则可以正常工作。
<!DOCTYPE doc [
<!ELEMENT doc (offor+)>
<!ELEMENT offor (#PCDATA|charm)* >
<!ELEMENT charm EMPTY>
<!ATTLIST charm
id ID #REQUIRED>
]>
<doc>
<offor>Ubuntu Juju is all that you need
<charm id="lisp"/>.</offor><offor>This one is the name thing</offor>
</doc>