xmlValidate
DTD, Relax NG または Schema により文書を検証する.
呼び出し手順
error = xmlValidate(docs [, valid])
引数
- docs
XMLDoc型のmlistまたはXML文書へのパスを有する文字列の行列
- valid
XMLValid型のmlist.
- error
エラーが発生した場合は文字列の行列,そうでない場合は[]
説明
パース済みの文書または指定されたパスの一連の文書を DTD, Relax NG, Schemaで検証します. 文書が有効な場合は空の行列,そうでない場合は エラーメッセージを含む文字列の行列が返されます.
パスを指定して文書を検証することで性能が改善され,消費メモリが減少します.
現時点では外部DTDで文書を検証することはできません. これを行う唯一の方法はXMLファイルに <!DOCTYPE foo SYSTEM "foo.dtd"> のような記述を行い, xmlValidateを2番目の引数を付けずに使用することです.
例
doc = xmlRead("SCI/modules/xml/tests/unit_tests/library.xml"); dtd = xmlDTD("SCI/modules/xml/tests/unit_tests/library.dtd"); schema = xmlSchema("SCI/modules/xml/tests/unit_tests/library.xsd"); rng = xmlRelaxNG("SCI/modules/xml/tests/unit_tests/library.rng"); // 文書が有効かどうかを調べます // エラーがない場合,ファイルは有効です // DTD xmlValidate(doc, dtd); // Relax NG xmlValidate(doc, rng); // Schema xmlValidate(doc, schema); // 新規要素に文書が追加されます doc.root.children(3) = "<a>error</a>" // ここで検証は失敗します xmlValidate(doc, dtd); xmlValidate(doc, rng); xmlValidate(doc, schema); // パスを指定して文書を検証できます xmlValidate("SCI/modules/xml/tests/unit_tests/library.xml") xmlValidate("SCI/modules/xml/tests/unit_tests/invalid_library.xml") xmlValidate("SCI/modules/xml/tests/unit_tests/library.xml", schema) xmlValidate("SCI/modules/xml/tests/unit_tests/invalid_library.xml", rng) // オープンした文書を全て削除します xmlDelete(doc, dtd, schema, rng);
参照
- xmlDTD — XML DTDオブジェクトを作成
- xmlSchema — XMLスキーマオブジェクトを作成する
- xmlRelaxNG — XML Relax NGオブジェクトを作成する
履歴
バージョン | 記述 |
5.4.0 | XMLモジュールが導入されました. |
Report an issue | ||
<< xmlSetValues | XML Management | xmlWrite >> |