かを検証書類に対SchematronスキーマJava?
-
05-09-2019 - |
質問
調査を実施しているのは、同じように、 JAXPによるデフォルト対応W3C XML Schema、RelaxNGからJava6.
できるように設計してい数のApiは、主に実験的または不完全に schematron.com リンクページ.
あのアプローチに検証schematron Javaことになる、効率的に使用でき、JAXP API?
解決
静安 支援事前ISO Schematron検証(注景の実施はもXSLT).
またXSLTの実装できる非常に簡単に呼び出されたJava.必要なものを決定版Schematronご興味のあるその対応するスタイルシート-そのあるべきだからschematron.com.のプロセスはとても簡単です簡単な、基本的には2ステップ:
- の骨格XSLTおSchematronスキーマへの新たなXSLTスタイルシートを代表するおSchematronスキーマにXSLT
- 適用し、得られたXSLTおインスタンスをなす書類でそれらを検証す
JAXPはAPIを必要としな支援Relax NGから実装されます。チェックする必要があり、特定の実装でご使用になることばを支えるRelax NGです。
他のヒント
純粋なJavaのSchematronの実装は、 https://github.com/phax/ph-schematronに位置しています/ に これは、XSLTのアプローチと、純粋なJavaのアプローチの両方のサポートをもたらします。
あなたは SchematronAssert の(:私のコード開示)をチェックアウトすることができます。これは主に、ユニットテストのためのものですが、あなたはあまりにも通常のコードのためにそれを使用することができます。これは、XSLTを使用して実装されます。
ユニットテストの例:
ValidationOutput result = in(booksDocument)
.forEvery("book")
.check("author")
.validate();
assertThat(result).hasNoErrors();
スタンドアロンの検証例:
StreamSource schemaSource = new StreamSource(... your schematron schema ...);
StreamSource xmlSource = new StreamSource(... your xml document ... );
StreamResult output = ... here your SVRL will be saved ...
// validation
validator.validate(xmlSource, schemaSource, output);
SVRLのオブジェクト表現と協力します:
ValidationOutput output = validator.validate(xmlSource, schemaSource);
// look at the output
output.getFailures() ...
output.getReports() ...
所属していません StackOverflow