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