0

我有以下情况
- 我动态创建 XML 文档(DocumentImpl)(使用数据)。所以 XML 永远不会写入磁盘。
- 我动态创建 XSD 模式(使用数据定义),这些也从未写入磁盘。语法很复杂,带有断言,因此它们需要用作 XMLSchema v1.1
- 我将 XSD 模式中的语法 (SchemaGrammar) 存储在哈希图中,这是因为相同的语法经常使用更多次。

现在我的问题,

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

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

4

1 回答 1

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);

`

于 2013-03-14T10:54:55.307 回答