我有以下情况
- 我即时创建XML文档(DocumentImpl)(使用数据)。所以XML永远不会被写入光盘
- 我动态创建XSD架构(使用数据定义),这些也永远不会写入光盘。语法与断言很复杂,因此需要将它们用作XMLSchema v1.1
- 我将XSD-schemas中的语法(SchemaGrammar)存储在一个hashmap中,这是因为相同的语法经常被使用多次。
现在我的问题,
我想根据语法验证文档。我知道要使用哪种语法。它们由相应的数据定义名称找到。
我的问题是我找不到示例代码如何执行此操作,因为所有示例似乎都是从流或文件中工作,而我已准备好对象。
答案 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);
`