2014-03-06 27 views
0

我知道什麼是DTD,如question中所述。我正在讀一篇論文,他們正在討論從XHTML文檔或其模式中提取DTD。我想知道這是什麼意思?有誰能給我一個澄清的例子嗎?從XHTML中提取文檔類型定義(DTD)是什麼意思?

+0

您應該指定您所引用的論文,並提供足夠長的逐字引文,以及描述引用的上下文。現在試圖分析它們的含義可能是純粹的猜測。 –

回答

1

DTD 模式,因爲它描述了數據的結構;它類似於一個班級。一個XHTML文檔是一個實例,類似於一個對象。 XHTML也是XML。因此,您可以生成一個僅基於該文檔描述元素和屬性內容的DTD(或XML模式),並且生成的DTD或XML模式將對其進行驗證。

但是不能保證這個生成的模式將驗證其他XHTML文檔。如果您爲您的實例添加了額外的<p>,或者如果您使用了用於生成DTD的實例中不存在的有效XHTML標記,則此第二個文檔的驗證將失敗。

如果您有另一種驗證XHTML的模式(例如,用於XHTML的W3C XML模式),那麼您可以從中生成一個DTD,該DTD將驗證您創建的所有XHTML實例(在這種情況下,下載或使用DTD可在W3C獲得)。

有幾種工具可以根據XML Schemas或文檔生成DTD。如果你搜索,你會發現幾個免費和商業選擇。

+0

感謝您的澄清:) – Ehsan

+0

是否有任何工具從HTML文檔中提取DTD或模式? – Ehsan

+0

我在Mac OS中使用Oxygen XML Editor。我相信XML Spy也能實現這一點。但它必須是格式良好的XML(XHTML)。無論如何,如果你想要一個DTD或Schema for XHTML,你不必生成一個。您可以參考它或從W3C,[XML Schema](http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd)或[DTD](http:// www .w3.org/TR/XHTML1/dtds.html)。如果由於某種原因必須使用DTD(而不是XML Schema)並且HTML文檔具有外部命名空間元素(例如'svg:svg'),則DTD提取將很有用。 – helderdarocha