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 ドキュメントに次のいずれかを含める必要があります。
validator パラメータを使用し、XML ドキュメントで DTD またはスキーマを指定する場合、XmlValidate 関数は validator パラメータの方を使用し、XML ドキュメントでの指定を無視します。 validator パラメータを使用せず、XML ドキュメントで DTD またはスキーマを指定しない場合、この関数は Errors フィールドにエラーメッセージが示された構造体を返します。 この関数は、XML ドキュメント全体に対して検証処理を行い、処理中に検出されたエラーをすべてレポートします。その結果、返される構造体は Warning、Error、および FatalError の各フィールドの組み合わせになる可能性があり、各フィールドには複数のエラーメッセージを含むことができます。 |
|||
例
次の例には 3 つの部分があります。つまり、XML ファイル、XSD スキーマファイル、および検証のために XML ファイルを解析してスキーマを使用する CFML ページです。CFML ファイルでは、返される構造体の Status フィールドの値が表示され、返される構造体が表示されます。無効な XML の結果を表示するには、custorder.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 | |
ブール値です。
|
WARNING | |
検証機能の警告を含む配列です。ウェルフォームドの有効ドキュメントで警告メッセージが生 成される場合があります。 |
XMLDOC | |
次のいずれかです。
|
VALIDATOR | |
次のいずれかです。
|