XML 文档指定它遵循 DTD和Schema 是否合法?两者不会互相冲突吗?
问问题
1843 次
2 回答
2
从技术上讲,我认为您会遇到 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.xsd"?>
<doc>
<test>Test Doc</test>
</doc>
于 2013-04-15T17:59:55.737 回答
1
XML 文档指定它遵循 DTD 和 Schema 是否合法?
是的
两者不会互相冲突吗?
只有当他们中的一个人要求其他人禁止的事情时(在这种情况下,声称遵循两者都是一件奇怪的事情)。
于 2013-04-15T17:26:22.477 回答