Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.5.0 - 日本語

Change language to:
English - Français - Português - Русский

Please note that the recommended version of Scilab is 2024.0.0. This page might be outdated.
See the recommended documentation of this function

Scilabヘルプ >> XML Management > xmlValidate

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
<< xmlSetAttributes XML Management xmlWrite >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Fri Apr 11 14:18:58 CEST 2014