特定の XML を検証し、人間が判読できる結果を出力するためのツールを構築しようとしています。私の既存の PHP コードは、DOMDocument::schemaValidate を使用して .xsd ファイルに対して XML を検証しますが、エラー メッセージはあまりわかりやすいものではありません。
たとえば、XML が以下のサンプルのようになり、Latitude が 10 進数であるとします。
<Person>
<FirstName>Bret</FirstName>
<Location>
<Address>123 Test Ave.</Address>
<Latitude></Latitude>
<Longitude>30.139338</Longitude>
</Location>
</Person>
現在表示されるエラーメッセージは次のとおりです。
Document::schemaValidate(): 要素 'Latitude': '' は原子タイプ 'xs:decimal' の有効な値ではありません。
私はそれを言いたい:
XML 行 #5 のエラー: "Bret" という人物の住所の緯度は空です。この XML を処理するには、有効な Latitude を含める必要があります。
同様の質問が以前に尋ねられました:
ただし、DOMDocument::schemaValidate がこの仕事に適したツールでない場合は、PHP または Perl を使用して、独自のブルート フォース検証コードを作成するつもりです。私のエラー メッセージは、この例の "FirstName" フィールドのように、親要素に格納されている情報を参照する必要があることに注意してください。
私の質問は次のとおりです。この検証ツールを作成するための良いアプローチは何ですか? 正しい方向に向けるための既存のコード ライブラリまたはチュートリアルはありますか?
ありがとう!!