Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: Facing problem when validating XML with multiple root node Schema

From: Vineet Chopra <incivinci@-----.--->
To: xmlschema-dev@--.---
Date: 10/14/2004 2:40:00 PM
Hi all,

I will make things more clear - 

Can anybody point out the problem - 

I have a multiple root node schema. And I am validation my XML against
this schema using JDOM with XercesJ parser. Code sections as follows -

===========================================================
if(new Boolean(CommonsUtil.readProps(Globals.SERVICE_ID,
"xmlSchemaValidation")).booleanValue()){
log.debug("Started validating XML against defined schema");
builder.setValidation(true);
XMLParseErrorHandler errorHandler = new XMLParseErrorHandler(xml);
builder.setErrorHandler(errorHandler);
builder.setFeature("http://apache.org/xml/features/validation/schema", true);
builder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",
CommonsUtil.readProps(Globals.SERVICE_ID, "xmlSchemaLocation"));

}else{
log.debug("XML Schema Validation switched off");
}
Document doc = builder.build(src);

===========================================================
The parser validates one XML with root node "Response" but gives the
following error while validating XML with root node "Request" -

Error: cvc-elt.1: Cannot find the declaration of element 'Request'. at
line 1, co
lumn 10 in entity null

I know that the error description suggests that there is no definition
for the tag "Request" in the schema. But I have cross checked the
schema and the XML with XMLSpy, no problem in that.


Here is the schema, though a long one - 

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
	<xs:element name="Activity">
		<xs:complexType>
			<xs:attribute name="ID" type="xs:string" use="required"/>
			<xs:attribute name="Name" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="Applicant">
		<xs:complexType>
			<xs:all>
				<xs:element ref="ApplicantNameAR" minOccurs="0"/>
				<xs:element ref="ApplicantNameEN" minOccurs="0"/>
				<xs:element ref="BirthPlaceAR" minOccurs="0"/>
				<xs:element ref="BirthPlaceEN" minOccurs="0"/>
				<xs:element ref="Comments" minOccurs="0"/>
				<xs:element ref="DOB" minOccurs="0"/>
				<xs:element ref="EmiratesId" minOccurs="0"/>
				<xs:element ref="EmiratesID" minOccurs="0"/>
				<xs:element ref="EmiratesDescAR" minOccurs="0"/>
				<xs:element ref="EmiratesDescEN" minOccurs="0"/>
				<xs:element ref="JobId" minOccurs="0"/>
				<xs:element ref="JobDescAR" minOccurs="0"/>
				<xs:element ref="JobDescEN" minOccurs="0"/>
				<xs:element ref="McValidityDate" minOccurs="0"/>
				<xs:element ref="McStatus" minOccurs="0"/>
				<xs:element ref="NationalityId" minOccurs="0"/>
				<xs:element ref="NationalityDescAR" minOccurs="0"/>
				<xs:element ref="NationalityDescEN" minOccurs="0"/>
				<xs:element ref="POBox" minOccurs="0"/>
				<xs:element ref="PersonType" minOccurs="0"/>
				<xs:element ref="PersonNumber" minOccurs="0"/>
				<xs:element ref="Passport" minOccurs="0"/>
				<xs:element ref="PassportNb" minOccurs="0"/>
				<xs:element ref="Sex" minOccurs="0"/>
				<xs:element ref="Sponsor" minOccurs="0"/>
				<xs:element ref="Status" minOccurs="0"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="AcknowledgementInfo">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Committed"/>
				<xs:element ref="Duplicate"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="ApplicantInfo">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="Applicant" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ApplicantNameAR" type="xs:string"/>
	<xs:element name="ApplicantNameEN" type="xs:string"/>
	<xs:element name="AreaId" type="xs:string"/>
	<xs:element name="AreaDescAR" type="xs:string"/>
	<xs:element name="AreaDescEN" type="xs:string"/>
	<xs:element name="BirthPlaceAR" type="xs:string"/>
	<xs:element name="BirthPlaceEN" type="xs:string"/>
	<xs:element name="Building" type="xs:string"/>
	<xs:element name="Body">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Process"/>
				<xs:element ref="ApplicantInfo" minOccurs="0"/>
				<xs:element ref="AcknowledgementInfo" minOccurs="0"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="CityId" type="xs:string"/>
	<xs:element name="CityDescAR" type="xs:string"/>
	<xs:element name="CityDescEN" type="xs:string"/>
	<xs:element name="Committed" type="xs:string"/>
	<xs:element name="Contact1" type="xs:string"/>
	<xs:element name="Contact2" type="xs:string"/>
	<xs:element name="Comments" type="xs:string"/>
	<xs:element name="DOB" type="xs:string"/>
	<xs:element name="Duplicate" type="xs:string"/>
	<xs:element name="Date" type="xs:string"/>
	<xs:element name="DepartmentInfo">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Sender"/>
				<xs:element ref="Receiver"/>
				<xs:element ref="Transaction"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="Description" type="xs:string"/>
	<xs:element name="EmiratesDescAR" type="xs:string"/>
	<xs:element name="EmiratesDescEN" type="xs:string"/>
	<xs:element name="ExpiryDate" type="xs:string"/>
	<xs:element name="EmiratesId" type="xs:string"/>
	<xs:element name="EmiratesID" type="xs:string"/>
	<xs:element name="FlatNumber" type="xs:string"/>
	<xs:element name="FusionInfo">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Activity"/>
				<xs:element ref="Process"/>
				<xs:element ref="TransactionID"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="Header">
		<xs:complexType>
			<xs:all>
				<xs:element ref="DepartmentInfo"/>
				<xs:element ref="FusionInfo"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="Id">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="140"/>
				<xs:enumeration value="180"/>
				<xs:enumeration value="EMCS-001"/>
				<xs:enumeration value="EMCS-002"/>
				<xs:enumeration value="EMCS-003"/>
				<xs:enumeration value="EMCS-004"/>
				<xs:enumeration value="EMCS-005"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<xs:element name="IssueDate" type="xs:string"/>
	<xs:element name="JobDescAR" type="xs:string"/>
	<xs:element name="JobDescEN" type="xs:string"/>
	<xs:element name="JobId" type="xs:string"/>
	<xs:element name="McValidityDate" type="xs:string"/>
	<xs:element name="McStatus" type="xs:string"/>
	<xs:element name="NameAR" type="xs:string"/>
	<xs:element name="NameEN" type="xs:string"/>
	<xs:element name="NationalityId" type="xs:string"/>
	<xs:element name="NationalityDescAR" type="xs:string"/>
	<xs:element name="NationalityDescEN" type="xs:string"/>
	<xs:element name="Number" type="xs:string"/>
	<xs:element name="POBox" type="xs:string"/>
	<xs:element name="Passport">
		<xs:complexType>
			<xs:all>
				<xs:element ref="ExpiryDate"/>
				<xs:element ref="IssueDate"/>
				<xs:element ref="Number"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="PassportNb" type="xs:string"/>
	<xs:element name="PersonNumber" type="xs:string"/>
	<xs:element name="PersonType" type="xs:string"/>
	<xs:element name="Process">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Comments" minOccurs="0"/>
				<xs:element ref="Id" minOccurs="0"/>
				<xs:element ref="Description" minOccurs="0"/>
				<xs:element ref="Status" minOccurs="0"/>
			</xs:all>
			<xs:attribute name="ID" type="xs:string" use="optional"/>
			<xs:attribute name="Name" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="ProcessType" type="xs:string"/>
	<xs:element name="Receiver">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Id"/>
				<xs:element ref="Description"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="ReferenceNumber" type="xs:string"/>
	<xs:element name="Response">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Header"/>
				<xs:element ref="Body"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="Request">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Header"/>
				<xs:element ref="Body"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="Status" type="xs:string"/>
	<xs:element name="Sex" type="xs:string"/>
	<xs:element name="Sponsor">
		<xs:complexType>
			<xs:all>
				<xs:element ref="AreaId"/>
				<xs:element ref="AreaDescAR"/>
				<xs:element ref="AreaDescEN"/>
				<xs:element ref="Building"/>
				<xs:element ref="CityId"/>
				<xs:element ref="CityDescAR"/>
				<xs:element ref="CityDescEN"/>
				<xs:element ref="Contact1"/>
				<xs:element ref="Contact2"/>
				<xs:element ref="EmiratesId"/>
				<xs:element ref="EmiratesDescAR"/>
				<xs:element ref="EmiratesDescEN"/>
				<xs:element ref="FlatNumber"/>
				<xs:element ref="NameAR"/>
				<xs:element ref="NameEN"/>
				<xs:element ref="SponsorType"/>
				<xs:element ref="SponsorNumber"/>
				<xs:element ref="Street"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="SponsorType" type="xs:string"/>
	<xs:element name="SponsorNumber" type="xs:string"/>
	<xs:element name="Street" type="xs:string"/>
	<xs:element name="Sender">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Id"/>
				<xs:element ref="Description"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="Transaction">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Type"/>
				<xs:element ref="ProcessType"/>
				<xs:element ref="Date"/>
				<xs:element ref="ReferenceNumber"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="TransactionID" type="xs:string"/>
	<xs:element name="Type" type="xs:string"/>
</xs:schema>

Thanks once again.



On Tue, 12 Oct 2004 16:50:41 +0400, Vineet Chopra <incivinci@g...> wrote:
> Hello,
> 
> I am facing a problem while validating an XML document against a
> schema, using JDOM with XercesJ parser.
> 
> Description -
> 
> My code is consuming XML messages sent over HTTP Connection. I want to
> validate the XML messages before parsing the same. For this I have
> created a single Schema which defines all incoming XML messages. The
> resultant schema has multiple root nodes.
> 
> The code validates one root node for an incoming XML mesaage but fails
> to validate root nodes of another XML messages.
> 
> The error which I get is
> 
> Error: cvc-elt.1: Cannot find the declaration of element 'Request'. at
> line 1, column 10 in entity null
> 
> The schema does contain a definition for the tag "Request". I have
> cross checked it umpteen times.
> 
> I shall be thankful if you throw some light on this.
> 
> Vineet Chopra
>

From abcoates@o... Thu Oct 14 21:19:31 2004
Received: from lisa.w3.org ([128.30.52.41])
	by frink.w3.org with esmtp (Exi


transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent