2013-03-13 38 views
0

我有以下情況
- 我在運行中(使用數據)創建XML文檔(DocumentImpl)。所以XML從不寫入光盤。
- 我實時創建XSD架構(使用數據定義),這些架構也不會寫入光盤。語法與斷言很複雜,因此它們需要用作XMLSchema v1.1
- 我將來自XSD架構的語法(SchemaGrammar)存儲在一個hashmap中,這是因爲相同的語法經常被使用多次。
如何在Xerces中使用語法驗證文檔

現在我的問題,

我想驗證對語法的文件。我知道使用哪種語法。它們通過相應的數據定義名稱找到。

我的問題是,我找不到示例代碼如何做到這一點,因爲所有的例子似乎從流或文件工作,而我準備好對象。

+0

你用C++或Java? – 2013-03-19 15:24:00

回答

1

我認爲,它的工作原理是這樣的:

`

XMLGrammarPoolImpl pool = new XMLGrammarPoolImpl(); 
pool.putGrammar(grammar); 

XMLSchema11Factory factory = new XMLSchema11Factory(); 
Schema schema = factory.newSchema(pool); 

Validator validator = schema.newValidator(); 

DOMSource source = new DOMSource(document); 
validator.validate(source); 

`

+0

你可以「接受」你自己的答案。 – 2015-05-15 19:05:39