Jak mogę sprawdzić poprawność dokumentów XML podczas kompilacji Mavena względem schematu DTD lub XSD?Sprawdzanie DTD/schematu XML w Maven
Odpowiedz
Istnieje xml-maven-plugin, który może sprawdzić, czy pliki XML są matching an XML schema, ale nie sądzę, że może generować raporty.
Plik validate goal wtyczki xml-maven sprawdzi poprawność kształtu i opcjonalnie sprawdzi poprawność względem schematu. Kompilacja zakończy się niepowodzeniem, jeśli sprawdzanie poprawności zakończy się niepowodzeniem.
Wtyczka nie generuje żadnego raportu, czego byś chciał (a) w raporcie będącym przedmiotem zainteresowania? informacje o nieprawidłowych plikach?
Oto przykład użycia:
<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>
Użyłem xml-maven-plugin jakiegoś czasu (dzięki Pascal Thivent i Rick Seller za wprowadzenie mnie do tego), ale miał pewne problemy z nim.
Sprawdzałem poprawność dokumentu XML. W pewnym momencie dzielimy dokument XML na dwa pliki, oba w ich własnym podkatalogu. W tym momencie wtyczka xml-maven już nic nie sprawdzała, ponieważ plik został przeniesiony, ale też nie narzekał na to. Również osobiście znalazłem konfigurację niezbyt intuicyjną i nieco trudną do debugowania, jeśli tego się nie spodziewasz.
Tak więc dla mnie z przyjemnością odkryłem na nowo zadanie Ant schemavalidate połączone z maven-antrun-plugin. Czy wszystko, co potrzebne i więcej.
W poniższym przykładzie sprawdzam, czy pliki są faktycznie wybrane. Oczywiście możesz to dostosować do swoich konkretnych potrzeb. Jako bonus (trudny do odgadnięcia) przykład, jak pobieram ścieżkę xsd, która jest pobierana jako zależność.
<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>
prawda, to tak naprawdę nie pasuje w sposób maven pracy, ale pracował dla mnie, a może ktoś inny pomógł znając tę opcję.
- 1. Sprawdzanie wersji Maven
- 2. sprawdzanie poprawności schematu XML
- 3. Sprawdzanie, który kompilator Maven używa
- 4. Sprawdzanie projektu Maven z SVN w Eclipse
- 5. Reading Maven Pom XML w Pythonie
- 6. Sprawdzanie, czy element podrzędny XML istnieje z Linq do XML
- 7. Sprawdzanie poprawności XML za pomocą LibXML
- 8. eclipse: sprawdzanie poprawności xml z xsd
- 9. Sprawdzanie poprawności XML - używanie wielu xsd z
- 10. Sprawdzanie poprawności dokumentów XML z XSD poprawnie
- 11. Sprawdzanie poprawności kodu XML względem oprogramowania XSD
- 12. Sprawdzanie poprawności XML w stosunku do podanego DTD w PHP
- 13. Sprawdzanie poprawności XML za pomocą XSD w Visual Studio IDE
- 14. Eclipse CDT sprawdzanie pisowni w języku XML (nie C++) plików
- 15. Sprawdzanie poprawności plików XML przed XSD w FireMonkey
- 16. Sprawdzanie poprawności javax.xml.crypto.dsig przy użyciu klucza publicznego w xml
- 17. Sprawdzanie poprawności XML przeciwko XSD w pojedynczej metodzie
- 18. Sprawdzanie poprawności składni/struktury XML za pomocą node.js
- 19. Sprawdzanie poprawności xml przeciwko xsd z JS/jQuery
- 20. zakomentowanie XML w vim
- 21. Sprawdzanie poprawności XML po stronie serwera za pomocą CXF Webservice
- 22. Sprawdzanie poprawności schematu XML: Nie można odnaleźć deklaracji elementu
- 23. VB.NET sprawdzanie poprawności pliku XML przed plikiem XSD i parsowanie poprzez xml
- 24. Sprawdzanie istnienia cyklu i istnienia pliku w Maven i zgłaszanie błędu
- 25. Programowe określanie, który węzeł w dokumencie XML spowodował sprawdzanie poprawności w odniesieniu do jego schematu XML, aby się nie powieść
- 26. W której warstwie należy wykonać sprawdzanie poprawności?
- 27. Sprawdzanie poprawności wartości Mavena w Javie
- 28. Sprawdzanie poprawności XML z ładowaniem schematów w środowisku wykonawczym, awaria w zależności od kolejności schematu
- 29. Sprawdzanie XPath w .NET
- 30. Sprawdzanie memory_limit w PHP
Tak, raporty o błędach poprawności pomogą wskazać prawdopodobne błędy w plikach XML, takich jak PMD lub Findbug dla kodu Java. Zauważyłem, że wielu programistów pomija błędy/ostrzeżenia dotyczące sprawdzania poprawności xml lub jsp podczas pracy z projektem, co może powodować potencjalne błędy środowiska wykonawczego. – cetnar
Uzgodnione. Nie jest tak przydatny, aby po prostu zawieść kompilację, ale aby nie skompilować i wydrukować błędu sprawdzania poprawności schematu ... teraz jest bardzo przydatny. Zwłaszcza jeśli używasz IDE tylko wtedy, gdy chcesz coś debugować. – avgvstvs