Mavenビルド中にDTDまたはXSDスキーマに対してXML文書を検証するにはどうすればよいですか?MavenでのXML DTD /スキーマ検証
答えて
XMLファイルがmatching an XML schemaであるかどうかを確認できるxml-maven-pluginがありますが、レポートを生成できないと思います。
xml-maven-pluginのvalidate goalは整形式をチェックし、オプションでスキーマに対して検証します。検証が失敗した場合、ビルドは失敗します。
プラグインはレポートを作成しませんが、興味のあるレポートでは何をしたいですか?無効なファイルに関する情報?ここで
は使用例です:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xml-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>validate</goal>
</goals>
</execution>
</executions>
<configuration>
<validationSets>
<validationSet>
<dir>src/main/xsd</dir>
<systemId>src/main/xmlschema.xml</systemId>
</validationSet>
</validationSets>
</configuration>
</plugin>
私はいくつかの時間(これに私を導入するためのPascal ThiventとRick Sellerのおかげで)のためにxml-maven-pluginを使用しますが、それにはいくつかの問題がありました。
私はXML文書を検証していました。ある時点で、XML文書を2つのファイルに分割します。どちらも、それぞれのサブディレクトリーにあります。その時点で、xml-maven-pluginはファイルが移動されたために何も検証しませんでしたが、それについても不平を言っていませんでした。また、個人的に私は設定があまりにも直感的ではなく、あなたが期待していなければデバッグするのが少し難しいと感じました。
私のために、schemavalidateのAntタスクとmaven-antrun-pluginを組み合わせて再発見することができました。私が必要としていたすべてをしました。
以下の例では、実際にファイルが選択されていることを確認しています。もちろん、あなたのニーズに合わせて調整することができます。ボーナス(難しい話題です)として、依存関係としてダウンロードされたxsdのパスを取得する方法の例です。確かに
<build>
<plugins>
<plugin><groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId><version>1.8</version>
<executions><execution>
<id>validate-xml-document-files-against-schema</id>
<phase>test</phase>
<goals><goal>run</goal></goals>
<configuration>
<target>
<copy file="${maven.dependency.com.mycompany.some-schema.xsd.path}" tofile="${xml-validation-dir}/some-schema.xsd" />
<resourcecount property="xml.count">
<fileset dir="${xml-validation-dir}" includes="**/*.xml" />
</resourcecount>
<fail message="fileset does not match any xml file (use same fileset for actual validation)">
<condition><equals arg1="${xml.count}" arg2="0" /></condition>
</fail>
<echo message="validating ${xml.count} xml files against some-schema" />
<schemavalidate>
<schema namespace="http://mycompany.com/some-namespace" file="${xml-validation-dir}/some-schema.xsd" />
<fileset dir="${xml-validation-dir}" includes="**/*.xml" />
</schemavalidate>
<echo message="all ${xml.count} xml documents are valid" />
</target>
</configuration>
</execution></executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>some-schema-artifact</artifactId>
<version>1.2.3</version>
<type>xsd</type>
</dependency>
</dependencies>
、これは本当に作業のMavenの方法に適合していないが、それは私のために働いた、多分他の誰かがこのオプションを知ることによって助けられます。
- 1. Java XML DTDの検証
- 2. XMLスキーマ検証ユースケース
- 3. dtdを使用したXML検証
- 4. C#のXMLスキーマ検証
- 5. XMLスキーマ検証[セキュリティ]問題
- 6. xmllint DTD検証構文
- 7. Linq to XML - dtdに対してxmlを検証
- 8. PHPで指定されたDTDに対するXMLの検証
- 9. JavaのXMLスキーマ検証のelementFormDefault =
- 10. 同期XMLスキーマの検証? .NET 3.5
- 11. 連合要素の検証XMLスキーマ
- 12. xs:alternative(Eclipse)のXMLスキーマ検証エラー
- 13. Oracle XMLスキーマ検証の日付パターン・エラー
- 14. スキーマのjava xml検証問題
- 15. svnコミット前のXMLスキーマ検証
- 16. XML、DTD:
- 17. XMLスキーマ検証:cvc-complex-type.2.4.a
- 18. 春データxml構成スキーマ検証エラー
- 19. C#を使用したXMLスキーマ検証
- 20. XSDスキーマを使用したXml検証
- 21. スキーマに対するXML(.xsd)フィード検証
- 22. PythonのDTDファイルに対してXMLを検証するには
- 23. C#でDTD宣言を含むXSDスキーマを使用してXMLを検証する
- 24. DTD宣言がXMLファイルに含まれていないXMLファイルのJava DTD検証?
- 25. XSLT変換前のDTD検証
- 26. DataSet.ReadXML()はDTDに対してXMLを検証します
- 27. XML DTDを使用してYAMLを検証する
- 28. 有効なXMLとDTDが検証されない
- 29. 複数のxmlファイルを検証するためのxmlスキーマ
- 30. jQuery/javascript DTDスキーマ操作
はい、バリデーションエラーレポートは、PMDやFindbugのようなXMLファイルのポーズ可能なエラーをJavaコードに対して指摘するのに役立ちます。私は、多くの開発者がプロジェクトで作業中にxmlまたはJSPの検証エラー/警告をスキップしていることに気付きました。潜在的なランタイムエラーの原因となる可能性があります。 – cetnar
合意。ビルドに失敗するだけでなく、ビルドに失敗してスキーマ検証エラーを出力するのは便利ではありません...今は非常に便利です。特に、何かをデバッグする必要があるときだけIDEを使用する場合。 – avgvstvs