hello
i had made a xsd file and perform marshalling and unmarshalling. but i want
to perform the validation during both marshalling and unmarshalling.i get
the following in eclipse console when attaching this piece of code
SchemaFactory sf =
SchemaFactory.newInstance(
javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("PublicationSchema.xml"));
unMarshaller.setSchema(schema);
also m providing my schema file.any help is appreciable.
""
Exception in thread "main" org.xml.sax.SAXParseException:
schema_reference.4: Failed to read schema document
'file:/C:/messagingWithSpring/jaxbproject/PublicationSchema.xml', because 1)
could not find the document; 2) the document could not be read; 3) the root
element of the document is not <xsd:schema>.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:2541)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:2528)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:1825)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:531)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:552)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:519)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:485)
at
com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:210)
at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:594)
at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:610)
at
com.hp.schemas.publication.publish._2010._9._27.unmarshall.main(unmarshall.java:47)""
my schema file is like this
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="
http://www.hp.com/schemas/Publication/publish/2010/9/27"
xmlns:xs="
http://www.w3.org/2001/XMLSchema"
xmlns:xmime="
http://www.w3.org/2005/05/xmlmime"
targetNamespace="
http://www.hp.com/schemas/Publication/publish/2010/9/27"
elementFormDefault="qualified" attributeFormDefault="unqualified"
version="1.87">
<xs:import namespace="
http://www.w3.org/2005/05/xmlmime"
schemaLocation="
http://www.w3.org/2005/05/xmlmime"/>
<xs:complexType name="Message">
<xs:sequence>
<xs:element name="MessageInfo" >
<xs:annotation>
<xs:documentation>Information about Message</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Event" type="EventType" minOccurs="0">
<xs:annotation>
<xs:documentation>Subject of the message</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Body" type="MediaType">
<xs:annotation>
<xs:documentation>Body of the message</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DeviceInfo" >
<xs:annotation>
<xs:documentation>Information about Device</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Device" type="DeviceType" minOccurs="0">
<xs:annotation>
<xs:documentation>Information about the device</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DeviceId" type="xs:string">
<xs:annotation>
<xs:documentation>Id of the Device</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="MyBinaryData">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:base64Binary" >
<xs:attribute ref="xmime:contentType" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name="EventType">
<xs:annotation>
<xs:documentation> Event Types s
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="LowInk"/>
<xs:enumeration value="FakeCartridge"/>
<xs:enumeration value="JobStatus"/>
<xs:enumeration value="NewDevice"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MediaType">
<xs:annotation>
<xs:documentation> Message contents that can be Processed
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="Text"/>
<xs:enumeration value="MyBinaryData"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DeviceType">
<xs:annotation>
<xs:documentation> Devices that can fire the events
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="Printer"/>
<xs:enumeration value="MobileApps"/>
<xs:enumeration value="Rover"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
--
View this message in context: http://old.nabble.com/HOW-TO-VALIDATE-OUR-DATA-AGAINST-THE-SCHEMA-tp29845138p29845138.html
Sent from the java.net - jaxb users mailing list archive at Nabble.com.