2012-02-27 60 views
2

我試圖找到一種方法來查詢RNG模式,同時避免重新發明輪子,以回答基本問題,例如:什麼元素是有效的孩子一個XML實例元素的屬性等等。在java中查詢RelaxNG模式(xml語法),最好使用012

賽後here提出了我與婧/莊這樣的希望,因爲我已經做RNG驗證與京,而是圍繞搜索後,我發現沒有源代碼示例這將確認要求和瀏覽API文檔也並沒有多大幫助(反過來,這也是與Jing捆綁在一起的唯一文檔)。

我真的很想避免將模式解析到我自己的對象模型中來執行這些查詢,而且它也似乎有點多餘,因爲我知道Jing也必須在某處執行它。問題是如何從中獲得我需要的信息。

是否有另一個庫,我可以用來從Java代碼查詢RNG模式?請注意,我沒有試圖通過使用模式驗證實例文件,我試圖查詢模式本身。

回答

1

此問題的答案是使用RNGOM。它是一個基於Jing的對象模型構建API。由於Jing沒有公開它的內部模型,似乎是避免對這個用例進行徹底改造的唯一方法。你仍然需要編寫你自己的代碼,通過瀏覽這個模型來進行實際的查詢(就像我現在要做的那樣)。

學習如何利用RNGOM不是微不足道的,因爲可以看到here,但項目的代碼庫應該使事情變得更簡單(包含使用示例)。

我遺憾地發現沒有其他的庫可以讓我查詢RNG模式(或者至少緩解做這件事的痛苦)。

編輯1

我結束了創建我自己的RNG對象模型和一個解析器來生成它。它旨在處理我的具體使用案例,並允許我查詢我在問題中發佈的問題。由於沒有提供其他答案,我會接受我自己的答案,直到(如果有的話)發佈更好的答案。