试图让我的 DTD 和 XML 正常工作
Trying to get my DTD and XML to work right
我一直在努力让我的 XML 不仅查看 DTD,而且在尝试验证我的 DTD 时收到错误,指出根元素之前的文档中的标记必须格式正确.我不确定我做错了什么或如何使这两个文件都能正常工作。任何帮助将不胜感激。
DTD:
<!ELEMENT measurements (#PCDATA|distance|weight|volume)>
<!ELEMENT weight (#PCDATA)>
<!ELEMENT volume (#PCDATA)>
<!ELEMENT distance (#PCDATA)>
<!ATTLIST distance status (metric|imperial) #REQUIRED>
XML:
<?xml version="1.0"?>
<!DOCTYPE measurements PUBLIC "-//American Sentinel//XML Applications//EN" "measurements.dtd">
<measurement>
<weight>5</weight>
<volume>10</volume>
<distance>metric</distance>
</measurement>
在您的 DTD 中,measurements
的声明需要是:
<!ELEMENT measurements (#PCDATA|distance|weight|volume)*>
这是因为只有一种声明方式mixed content。
此外,您在 DTD 中声明了 measurements
(复数),但在 XML 中您使用的是 measurement
(单数)。您必须更改 DTD 或 XML。如果更改 DTD,请不要忘记更改 XML.
中的文档类型声明
另一件事是 status
属性在您的 DTD 中被声明为必需的。
固定 DTD 示例和 XML...
DTD
<!ELEMENT measurements (#PCDATA|distance|weight|volume)*>
<!ELEMENT weight (#PCDATA)>
<!ELEMENT volume (#PCDATA)>
<!ELEMENT distance (#PCDATA)>
<!ATTLIST distance status (metric|imperial) #REQUIRED>
XML
<!DOCTYPE measurements PUBLIC "-//American Sentinel//XML Applications//EN" "measurements.dtd">
<measurements>
<weight>5</weight>
<volume>10</volume>
<distance status="metric"/>
</measurements>
我一直在努力让我的 XML 不仅查看 DTD,而且在尝试验证我的 DTD 时收到错误,指出根元素之前的文档中的标记必须格式正确.我不确定我做错了什么或如何使这两个文件都能正常工作。任何帮助将不胜感激。
DTD:
<!ELEMENT measurements (#PCDATA|distance|weight|volume)>
<!ELEMENT weight (#PCDATA)>
<!ELEMENT volume (#PCDATA)>
<!ELEMENT distance (#PCDATA)>
<!ATTLIST distance status (metric|imperial) #REQUIRED>
XML:
<?xml version="1.0"?>
<!DOCTYPE measurements PUBLIC "-//American Sentinel//XML Applications//EN" "measurements.dtd">
<measurement>
<weight>5</weight>
<volume>10</volume>
<distance>metric</distance>
</measurement>
在您的 DTD 中,measurements
的声明需要是:
<!ELEMENT measurements (#PCDATA|distance|weight|volume)*>
这是因为只有一种声明方式mixed content。
此外,您在 DTD 中声明了 measurements
(复数),但在 XML 中您使用的是 measurement
(单数)。您必须更改 DTD 或 XML。如果更改 DTD,请不要忘记更改 XML.
另一件事是 status
属性在您的 DTD 中被声明为必需的。
固定 DTD 示例和 XML...
DTD
<!ELEMENT measurements (#PCDATA|distance|weight|volume)*>
<!ELEMENT weight (#PCDATA)>
<!ELEMENT volume (#PCDATA)>
<!ELEMENT distance (#PCDATA)>
<!ATTLIST distance status (metric|imperial) #REQUIRED>
XML
<!DOCTYPE measurements PUBLIC "-//American Sentinel//XML Applications//EN" "measurements.dtd">
<measurements>
<weight>5</weight>
<volume>10</volume>
<distance status="metric"/>
</measurements>