2012-03-31 34 views

回答

2

經過大量研究,似乎並非真的可行。我們必須先生成xsl文件,然後用它來執行驗證。

6

擴大在以前的答案,因爲我需要做到這一點,它沒有給出足夠的信息(和因爲我的劇本已經做了十XSL轉換? - 什麼是四更)

基於this website一個XML文件可以通過一系列XSL轉換對照schematron進行驗證。由於我還需要關於如何與撒克遜人結合的信息 - 這裏是對於一個窗口框和一個目錄文件的撒克遜人的修改。

這裏是我在我的電腦上運行,通過撒克遜命令行的XSLT(其中filepath是依賴於系統):

java -cp "C:\FilePath\saxon9ee.jar;C:\FilePath\resolver.jar";. net.sf.saxon.Transform -s:inputFile.xml -o:outputFile.xml -xsl:C:\FilePath\transform.xsl -catalog:"C:\FilePath\catalog.xml" 

最重要的事情在這裏指出的是,當你使用一個目錄文件與撒克遜人,你必須指出它回到resolver.jar文件。通過三個

XSLT -input=xxx.sch -output=xxx1.sch -stylesheet=iso_dsdl_include.xsl 
XSLT -input=xxx1.sch -output=xxx2.sch -stylesheet=iso_abstract_expand.xsl 
XSLT -input=xxx2.sch -output=xxx.xsl -stylesheet=iso_svrl.xsl 
XSLT -input=document.xml -output=xxx-document.svrl -stylesheet=xxx.xsl 

你正在服用的Schematron的文件,運行它:

因此,與

XSLT = java -cp "C:\FilePath\saxon9ee.jar;C:\FilePath\resolver.jar";. net.sf.saxon.Transform -catalog:"C:\FilePath\catalog.xml" 

然後從網站上的信息是有道理的(已經發現在氧必要的XSL文件)轉換爲獲取您在原始xml文檔上運行的xsl文件。這實際上使腳本相對容易。

最後一個命令從來沒有爲我填充輸出文件。既然它運行良好,沒有一個,並將消息轉儲到STOUT,我只是離開它,並從那裏收集結果。

對不起可能需要更多的細節,但我希望我有這一切開始。