2011-10-25 56 views
0

我必須編寫一個XSLT將XML文件轉換爲另一個XML文件。原始輸入文件必須對DTD有效。在轉換之前,XSLT是否可以使用DTD驗證輸入xml文件?如果輸入文件不符合DTD,也會拒絕輸入文件。XSLT轉換前的DTD驗證

另外,我將運行一個工具如Xxygen XML Editor中的XSLT。

在此先感謝。 JK

+2

沒有理由投票結束「離題」 –

回答

1

您必須通過您的XSLT處理器執行此操作。我認爲在XSLT本身中沒有辦法做到這一點。

在oXygen中,您可以在首選項中轉到「XML/XSLT-FO-XQuery/XSLT/Saxon/Saxon-HE/PE/EE」,並打開或關閉DTD驗證(有一個組合框)。

+0

非常感謝,它的工作原理。但我更喜歡XSLT內置函數:) – Jay

+0

非常歡迎。 –

1

不支持內置的XSLT-1.0函數(它無法以乾淨的方式檢測非格式不良)。您的環境可以通過其他工具(如DOM Builders)提供此功能。

+0

XSLT 2.0怎麼樣? – Jay

+0

@jkcool - 查看我關於oXygen for Saxon(XSLT 2.0)的設置的回答 –

0

這完全取決於您使用的工具。在這種情況下,這是一個關於氧氣編輯器的問題。 XSLT規範中沒有任何內容需要處理器在讀取XML時執行DTD驗證。

+0

但是如果有一個XSD與XML相關聯,那麼就可以使用它來驗證輸入xml。我對嗎 ? – Jay

+0

僅當您使用的工具選擇實施並啓用XSD驗證時。這與XSLT本身無關。 – bmargulies

+1

@jkcool XSLT處理器必須做的唯一事情就是檢查格式。他們中的一些人可能會在非形式良好的輸入中發生可怕的崩潰(即不明白什麼是錯誤的) –