xml的问题
我是xml新手…我刚开始学习xml…我有以下疑问。。 下面是我的xml代码xml的问题,xml,dtd,cdata,pcdata,Xml,Dtd,Cdata,Pcdata,我是xml新手…我刚开始学习xml…我有以下疑问。。 下面是我的xml代码 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE book [ <!ELEMENT book (page)> <!ELEMENT page (heading,#PCDATA)> ]> <note> <page> hhh<heading>c</heading>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE book [
<!ELEMENT book (page)>
<!ELEMENT page (heading,#PCDATA)>
]>
<note>
<page>
hhh<heading>c</heading><heading>s</heading>
</page>
</note>
当我在浏览器中打开它时,它显示PCDATA有错误…当我用PCDATA替换它时,它显示没有错误…根据我的DTD,页面可以只包含一个标题元素…我说得对吗?但当我在浏览器中打开它时,即使我有两个标题元素,它也没有显示错误。为什么会发生这种情况。CDATA和PCDATA之间的区别是什么…使用以下方法:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note [
<!ELEMENT note (page)>
<!ELEMENT page (#PCDATA|heading)*>
<!ELEMENT heading (#PCDATA)>
]>
<note>
<page>
hhh<heading>c</heading><heading>s</heading>
</page>
</note>
PCDATA是将由解析器解析的文本。文本将是
由解析器检查实体和标记
CDATA是解析器不会解析的文本。标签内的
文本不会被视为标记,实体也不会展开
使用以下命令:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note [
<!ELEMENT note (page)>
<!ELEMENT page (#PCDATA|heading)*>
<!ELEMENT heading (#PCDATA)>
]>
<note>
<page>
hhh<heading>c</heading><heading>s</heading>
</page>
</note>
PCDATA是将由解析器解析的文本。文本将是
由解析器检查实体和标记
CDATA是解析器不会解析的文本。标签内的
文本不会被视为标记,实体也不会展开
我的建议是选择一些可靠的验证解析器,例如Community Edition非常易于使用:
altovaxml -validate document.xml
让我们看看你的DTD出了什么问题。首先,您的文档元素根未命名为book,因此我们从这里得到第一个错误:
引用的架构或DTD中存在错误。元素与根不匹配
DTD中的元素名称“book”
第二件事是标题没有声明:
元素尚未声明
最后,要允许对PCDATA进行put选择,这意味着首先要分析字符数据和标题元素:
最后,您的DTD是:
<!DOCTYPE note [
<!ELEMENT note (page)>
<!ELEMENT page (#PCDATA | heading)*>
<!ELEMENT heading (#PCDATA)>
]>
我的建议是选择一些可靠的验证解析器,例如Community Edition非常易于使用:
altovaxml -validate document.xml
让我们看看你的DTD出了什么问题。首先,您的文档元素根未命名为book,因此我们从这里得到第一个错误:
引用的架构或DTD中存在错误。元素与根不匹配
DTD中的元素名称“book”
第二件事是标题没有声明:
元素尚未声明
最后,要允许对PCDATA进行put选择,这意味着首先要分析字符数据和标题元素:
最后,您的DTD是:
<!DOCTYPE note [
<!ELEMENT note (page)>
<!ELEMENT page (#PCDATA | heading)*>
<!ELEMENT heading (#PCDATA)>
]>
]>为什么book不是我的根元素…还有..if是正确的为什么不正确]>@user822982:好问题,在DTD中是不正确的,因为您不能将PCDATA放入序列元素内容中。我认为它的内容和答案应该对您有所帮助。]>为什么book不是我的根元素…还有..if是正确的为什么不正确]>@user822982:好问题,在DTD中是不正确的,因为您不能将PCDATA放入序列元素内容中。我认为它的答案应该对你有帮助。