phpを使ってXMLのスキーマバリデーションってできるのだろうか?ということで調べました。DOMDocumentというクラスを使うことで対処可能でした。
PHPでスキーマバリデーションを利用するには、DOMDocumentというクラスを利用します。
PHPでXMLを扱うには2つ方法があって、simpleXMLとDOMDocumentがあるんですが、そのうちの複雑な方ということになります。
バリデーションの結果、XMLがXSD通りの構造をしていればtrueが、XSDに反した構造になっていればfalseが返ってくるという感じです。
以下のようなエラーが出ている場合、正しくバリデーションができていません。
このエラーが言っている内容は直接はよくわかりませんが、とりあえず、こういう感じのエラーがたくさん出ている場合には、バリデーションが正常に行われていません。
以上で無事にバリデーションができます。ちなみに、バリデーションに失敗した場合、エラー理由はWarningで出力されます。
エラー理由をうまくキャッチして、その後の分岐に活かすとかそういうことはできるのでしょうかその辺はまたこんど調べてみようと思います。。