User Guide

XmlValidate 927
Usage
If you specify a relative URL or filename in a parameter, ColdFusion uses the directory (or, for
URLs, the virtual directory) that contains the current ColdFusion page as the path root.
The
validator parameter specifies a DTD or Schema to use to validate the document. If you
omit the parameter, the XML document must contain one of the following:
A !DOCTYPE tag to specify the DTD or its location
An xsi:schemaLocation or xsi:noNamespaceSchemaLocation tag to specify the Schema
location
If you use a
validator parameter and the XML document specifies a DTD or Schema, the
XmlValidate function uses the validator parameter, and ignores the specification in the XML
document.
If you do not use a
validator parameter, and the XML document does not specify a DTD or
Schema, the function returns a structure with an error message in the Errors field.
This function attempts to process the complete XML document, and reports all errors found
during the processing. As a result, the returned structure can have a combination of Warning,
Error, and FatalError fields, and each field can contain multiple error messages.
Example
The following example has three parts: an XML file, an XSD Schema file, and a CFML page that
parses the XML file and uses the Schema for validation. The CFML file displays the value of the
returned structures Status field and displays the returned structure. To show the results of invalid
XML, modify the custorder.xml file.
Note: The Schema used in the following example represents the same XML structure as the DTD
used in the
XmlParse example.
The custorder.xml file is as follows:
<?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>Deluxe Carpenter&apos;s Hammer</name>
<quantity>1</quantity>
<unitprice>15.95</unitprice>
</item>
<item id="54">
<name>36&quot; Plastic Rake</name>
<quantity>2</quantity>
<unitprice>6.95</unitprice>
</item>
<item id="68">
<name>Standard paint thinner</name>
<quantity>3</quantity>
<unitprice>8.95</unitprice>