XML文档指定它是否遵循Schema的DTD 和是否合法? 这两者不会相互冲突吗?XML文档可以同时使用DTD和XML模式吗?
回答
从技术上讲,我认为你会遇到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>
是的,我想我可以复制XML文件,并为模式部分使用单独的文件。 – CodyBugstein
DTD中可以包含名称空间声明(如果不填写,则在通过DTD验证程序运行时XHTML文档无效...例如*缺少元素html的xmlns属性,值应该是:'http://www.w3.org/1999/xhtml'*)。将模式链接到XML文档的处理指令是PI,因此在验证期间不予考虑。 – Quentin
http://www.w3.org/TR/xml-model/#d0e676 – Quentin
XML文档指定它是否遵循DTD和Schema是否合法?
是
不会在两个相冲突彼此?
只有当他们中的一个强制要求另一个禁止时(在这种情况下声称遵循这两者将是一件奇怪的事情)。
我的意思是“它们不会冲突”是不是XML文档中声明它是模式实例与DTD下其定义冲突的语句? – CodyBugstein
不,为什么呢? – Quentin
- 1. 编写XML和DTD文档
- 2. 使用dtd文档验证xml文档
- 3. DTD到XML模式
- 4. Word Xml的DTD文档
- 5. 可以通过DTD-XML文件以编程方式创建CoreData模型吗?
- 6. Java:如何在使用Java处理XML文档时使用DTD?
- 7. 在XML文档上应用XML模式
- 8. 我可以使用JAXB通过xml模式处理XML模式吗?
- 9. XML文档可以引用不同XML版本的外部解析实体吗?
- 10. 全文搜索XML列时可以使用XML查询吗?
- 11. 我可以同时使用XML和MYSQL吗?
- 12. 用于logback.xml的XML模式或DTD?
- 13. XML文件和dtd关联
- 14. 加载DTD(文档类型定义)XML
- 15. 如何在XML文档中包含DTD
- 16. XML元素可以同时包含文本和子元素吗?
- 17. 您可以使用node.js中的XML/HTML文档吗?
- 18. 我可以使用linqToXml转换现有的xml文档吗?
- 19. 您可以使用antixml来创建xml文档吗?
- 20. 如何使用多个XML模式验证xml文档
- 21. 验证XML和DTD
- 22. 可以csharp类“继承”像java类的XML文档可以吗?
- 23. 你可以在eclipse中运行xmllint来验证xml和dtd文件吗?
- 24. 我可以修改/限制XML DTD的ATTLIST以允许使用UNIQUE属性吗?
- 25. 没有为文档检测到文法约束(DTD或XML模式)
- 26. 错误:没有为文档检测到文法约束(DTD或XML模式)
- 27. soapui - 警告 - 没有为文档检测到文法约束(DTD或XML模式)
- 28. 此XML文档中禁止使用DTD - 如何更改权限?
- 29. 使用XML DTD验证YAML
- 30. VB.Net - 使用DTD验证XML
就我而言,我有e是一个赋值问题,要求我为之前编写的XML文档编写DTD和Schema。 – CodyBugstein