XML文档是否合法指定它遵循DTD 和一个架构? 两者不会相互冲突吗?
答案 0 :(得分:1)
XML文档是否合法指定它遵循DTD和Schema?
是
两者不会相互冲突吗?
只有当其中一人强制执行其他禁止的事情时(在这种情况下声称要遵循这两种情况,这将是一件奇怪的事情)。
答案 1 :(得分:1)
从技术上讲,我认为你会遇到DTD无法识别引用模式的属性(名称空间声明和模式位置)的问题。
但是我认为这取决于您如何验证XML以及在指定架构时是否可以忽略DTD进行验证。
此外,对于您的作业,您确定必须同时引用同一XML实例吗?也许你可以拥有2个版本的XML;一个引用DTD,一个引用模式?
这是另外两个可能的选择......
声明架构属性:
<!DOCTYPE doc [
<!ELEMENT doc (test)>
<!ATTLIST doc
xmlns:xsi CDATA #IMPLIED
xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
<!ELEMENT test (#PCDATA)>
]>
<doc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="test.xsd">
<test>Test Doc</test>
</doc>
使用处理指令引用架构:
<!DOCTYPE doc [
<!ELEMENT doc (test)>
<!ELEMENT test (#PCDATA)>
]>
<?xml-model href="test.xsl"?>
<doc>
<test>Test Doc</test>
</doc>