Po kilku badaniach uważam, że najlepszą odpowiedzią jest Xerces , ponieważ implementuje on całą XSD, jest wieloplatformowy i szeroko stosowany. Utworzyłem mały projekt Java na github, aby sprawdzić poprawność z wiersza poleceń przy użyciu domyślnego parsera JRE, którym zwykle jest Xerces. Można tego użyć w systemie Windows / Mac / Linux.
Dostępna jest również wersja Xerces języka C ++, jeśli wolisz z niej korzystać. Do wywołania go z wiersza poleceń można użyć narzędzia StdInParse . Ponadto komentator poniżej wskazuje na to bardziej kompletne narzędzie do pakowania .
Możesz także użyć xmllint, który jest częścią libxml . Być może już go masz. Przykładowe użycie:
xmllint --noout --schema XSD_FILE XML_FILE
Jednym z problemów jest to, że libxml nie implementuje całej specyfikacji, więc możesz napotkać problemy :(
Alternatywnie, jeśli korzystasz z systemu Windows, możesz użyć msxml , ale będziesz potrzebować jakiegoś opakowania, aby go wywołać, takiego jak GUI opisany w tym artykule DDJ . Wydaje się jednak, że większość osób korzystających z systemu Windows korzysta z edytora XML, takiego jak Notepad ++ (jak opisano w odpowiedzi Nate'a ) lub XML Notepad 2007, jak sugeruje SteveC (jest też kilka komercyjnych edytorów, o których tutaj nie wspomnę).
Wreszcie, różne programy dadzą niestety różne wyniki. Wynika to głównie ze złożoności specyfikacji XSD. Możesz przetestować swój schemat za pomocą kilku narzędzi.
AKTUALIZACJA : rozwinąłem to w poście na blogu .