XMLVALIDATE |
説明 DTD (ドキュメントタイプ定義） または XML スキーマを使用して、XML テキストドキュメントまたは XML ドキュメントオブジェクトを検証します。
戻り値 次の検証構造体
カテゴリ XML 関数
関数のシンタックス
    XmlValidate(xmlDoc[, validator])
関連項目 cfxml、IsXmlDoc、IsXML、XmlFormat、XmlNew、XmlParse、XmlSearch、XmlTransform、『ColdFusion MX 開発ガイド』の第35章の「XML および WDDX の使用」
ヒストリ ColdFusion MX 7: この関数が追加されました。
パラメータ
使用方法 パラメータで相対 URL または相対ファイル名を指定した場合、ColdFusion は現在の ColdFusion ページをパスルートとして含んでいるディレクトリ (URL の場合は仮想ディレクトリ) を使用します。 validator パラメータは、ドキュメントを検証するために使用する DTD またはスキーマを指定します。このパラメータを省略した場合は、XML ドキュメントに次のいずれかを含める必要があります。 DTD または DTD の場所を指定する !DOCTYPE タグ スキーマの場所を指定する xsi:schemaLocation タグまたは xsi:noNamespaceSchemaLocation タグ validator パラメータを使用し、XML ドキュメントで DTD またはスキーマを指定する場合、XmlValidate 関数は validator パラメータの方を使用し、XML ドキュメントでの指定を無視します。 validator パラメータを使用せず、XML ドキュメントで DTD またはスキーマを指定しない場合、この関数は Errors フィールドにエラーメッセージが示された構造体を返します。 この関数は、XML ドキュメント全体に対して検証処理を行い、処理中に検出されたエラーをすべてレポートします。その結果、返される構造体は Warning、Error、および FatalError の各フィールドの組み合わせになる可能性があり、各フィールドには複数のエラーメッセージを含むことができます。
例 次の例には 3 つの部分があります。つまり、XML ファイル、XSD スキーマファイル、および検証のために XML ファイルを解析してスキーマを使用する CFML ページです。CFML ファイルでは、返される構造体の Status フィールドの値が表示され、返される構造体が表示されます。無効な XML の結果を表示するには、custorder.xml を修正します。
メモ: | 次の例で使用するスキーマは、XmlParse の例で使用する DTD と同じ XML 構造体を表します。
"custorder.xml" ファイルは次のとおりです。
    <?xml version="1.0" encoding="UTF-8"?>
    <order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://localhost:8500/something.xsd" id="4323251" >
       <customer firstname="Philip" lastname="Cramer" accountNum="21"/>
       <items>
          <item id="43">
             <name>   高級大工用ハンマー</name>
             <quantity>1</quantity>
             <unitprice>15.95</unitprice>
          </item>
          <item id="54">
             <name>   36 インチのプラスチック製熊手</name>
             <quantity>2</quantity>
             <unitprice>6.95</unitprice>
          </item>
          <item id="68">
             <name>   標準の塗料用シンナー</name>
             <quantity>3</quantity>
             <unitprice>8.95</unitprice>
          </item>
       </items>
    </order>
"custorder.xsd" ファイルは次のとおりです。
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified">
       <xs:element name="customer">
          <xs:complexType>
             <xs:attribute name="firstname" type="xs:string" use="required"/>
             <xs:attribute name="lastname" type="xs:string" use="required"/>
             <xs:attribute name="accountNum" type="xs:string" use="required"/>
          </xs:complexType>
       </xs:element>
       <xs:element name="name" type="xs:string"/>
       <xs:element name="quantity" type="xs:string"/>
       <xs:element name="unitprice" type="xs:string"/>
       <xs:element name="item">
          <xs:complexType>
             <xs:sequence>
                <xs:element ref="name"/>
                <xs:element ref="quantity"/>
                <xs:element ref="unitprice"/>
             </xs:sequence>
             <xs:attribute name="id" type="xs:integer" use="required">
             </xs:attribute>
          </xs:complexType>
       </xs:element>
       <xs:element name="items">
          <xs:complexType>
             <xs:sequence>
                <xs:element ref="item" maxOccurs="unbounded"/>
             </xs:sequence>
          </xs:complexType>
       </xs:element>
       <xs:element name="order">
          <xs:complexType>
             <xs:sequence>
                <xs:element ref="customer"/>
                <xs:element ref="items"/>
             </xs:sequence>
             <xs:attribute name="id" type="xs:string" use="required"/>
          </xs:complexType>
       </xs:element>
    </xs:schema>
CFML ファイルは次のとおりです。XML ファイルのファイル名およびスキーマの URL を使用します。XML パスおよび URL パスは絶対パスでなければなりません。
    <cfset
    myResults=XMLValidate("C:CFusionMX7wwwrootexamplescustorder.xml",
    "http://localhost:8500/examples/custorder.xsd")>
    <cfoutput>
    custorder.xml は custorder.xsd と照合されましたか?#results.status#<br><br>
    </cfoutput>
    XMLValidate によって返される myResults 構造体のダンプ<br>
    <cfdump var="#myResults#">

ERRORS |
検証機能のエラーメッセージを含む配列です。これらのメッセージは、ドキュメントが DTD またはスキーマに準拠していないこと (ドキュメントが有効でないこと) を示します。

FATALERRORS |
検証機能の重大エラーメッセージを含む配列です。重大エラーは、ドキュメントに XML 形式 設定エラーがあること (ドキュメントがウェルフォームドの XML でないこと) を示します。

STATUS |
ブール値です。 ドキュメントが有効である場合は true 検証チェックに失敗した場合は false

WARNING |
検証機能の警告を含む配列です。ウェルフォームドの有効ドキュメントで警告メッセージが生 成される場合があります。

XMLDOC |
次のいずれかです。 XML ドキュメントを含む文字列 XML ファイルの名前 XML ファイルの URL。http、https、ftp、file など、有効なプロトコル識別子です。 XML ドキュメントオブジェクト。たとえば、XmlParse 関数によって生成された XML ドキュメントオブジェクトなどです。

VALIDATOR |
次のいずれかです。 DTD またはスキーマを含む文字列 DTD またはスキーマファイルの名前 DTD またはスキーマファイルの URL。http、https、ftp、file など、有効なプロトコル識別子です。