如何在Xerces中使用语法验证文档

时间:2013-03-13 18:15:38

标签: java validation document grammar xerces

我有以下情况
- 我即时创建XML文档(DocumentImpl)(使用数据)。所以XML永远不会被写入光盘 - 我动态创建XSD架构(使用数据定义),这些也永远不会写入光盘。语法与断言很复杂,因此需要将它们用作XMLSchema v1.1
- 我将XSD-schemas中的语法(SchemaGrammar)存储在一个hashmap中,这是因为相同的语法经常被使用多次。

现在我的问题,

我想根据语法验证文档。我知道要使用哪种语法。它们由相应的数据定义名称找到。

我的问题是我找不到示例代码如何执行此操作,因为所有示例似乎都是从流或文件中工作,而我已准备好对象。

1 个答案:

答案 0 :(得分: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);

`