Jump to content

xsd validating help


mpsn

Recommended Posts

Hi, I get errors when trying to validate this schema.

 

here is xml:

========

<?xml version="1.0" encoding="ISO-8859-1"?>

<email>

<message>

<to>

<toFirstName>Tove</toFirstName>

<toLastName toType="common" style="swag">Smith</toLastName>

</to>

<from>

<fromFirstName>Jani</fromFirstName>

<fromLastName fromType="unique">Dravison</fromLastName>

</from>

<heading>Reminder</heading>

<body>

<prologue>Tis the night before Xmas...</prologue>

</body>

</message>

</email>

 

here is schema:

===========

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="email">
<xs:complexType>
	<xs:element name="message">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="to">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="toFirstName" type="xs:string"/>
							<xs:element name="toLastName"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="from">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="fromFirstName" type="xs:string"/>
							<xs:element name="fromLastName"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="heading" type="xs:string"/>
				<xs:element name="body">
					<xs:complexType>
						<xs:prologue name="prologue" type="xs:string"/>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
		<xs:attribute name="toType" type="xs:string" use="required"/>
		<xs:attribute name="style" type="xs:string" use="required"/>
		<xs:attribute name="fromType" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>

</xs:schema>

 

 

here is script that has validateXML function to check email.xml:

============================================

?php
//FCN SOURCE: IBM
//helper FCN: that switches b/t libxml error types
function showLibXMLErrors($error) { 
$return = "<br/>\n"; 
switch ($error->level) { 
	case LIBXML_ERR_WARNING: 
		$return .= "<b>Warning $error->code</b>: "; 
		break; 
	case LIBXML_ERR_ERROR: 
		$return .= "<b>Error $error->code</b>: "; 
		break; 
	case LIBXML_ERR_FATAL: 
		$return .= "<b>Fatal Error $error->code</b>: "; 
		break; 
} 
$return .= trim($error->message); 
if($error->file) { 
	$return .= " in <b>$error->file</b>"; 
} 
$return .= " on line <b>$error->line</b>\n"; 

return $return; 
} 
//calls showLibXMLErrors to show appropriate libxml error for line in cur XML file
function validateXML() { 
$errors = libxml_get_errors(); 
foreach ($errors as $error) { 
	print showLibXMLErrors($error); 
} 
libxml_clear_errors(); 
}

// Enable user error handling 
libxml_use_internal_errors(true); 

$xml = new DOMDocument(); 
$xml->load("email.xml"); 

if (!$xml->schemaValidate("email.xsd")) { 
print '<b>Errors Found!</b>'; 
validateXML(); 
} 
else { 
print "Validated <br />"; 
}

 

Please just try to run the script, just copy the info from this post and you will see errors!

 

Any help much appreciated!

 

Link to comment
https://forums.phpfreaks.com/topic/250843-xsd-validating-help/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.