質問

調査を実施しているのは、同じように、 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() ...
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top