Re: Query regarding Catalog resolver 'cvc-elt.1: Cannot find the
declaration of element'
Amit Jain wrote:
I am trying to configure catalog resolver api in my project.
But getting exception as mention below:
************************ Exception Start ***********************
org.jdom.input.JDOMParseException: Error on line 2 of document
file:///C://Workspace//catalogresolver//classes//note.xml: cvc-elt.1:
Cannot find the declaration of element 'note'.
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:465)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:891)
at TestResolver.main(TestResolver.java:41)
public static void main(String[] args) throws Exception{
CatalogResolver cr = new CatalogResolver();
SAXBuilder builder = new SAXBuilder();
builder.setFeature("http://apache.org/xml/features/validation/schema", true);
builder.setFeature("http://xml.org/sax/features/namespaces", true);
builder.setEntityResolver(cr);
String name = "http://apache.org/xml/properties/schema/external-schemaLocation";
String value = "http://schemas.xml.org/abc/123/";
builder.setProperty(name, value);
try{
Document doc = builder.build("C://Workspace//catalogresolver//classes//note.xml");
I am extremely skeptical about // here !
}catch(Exception e){
e.printStackTrace();
}
}
<?xml version="1.0"?>
<note xmlns="http://schemas.xml.org/abc/123/">
<to>Amit</to>
<from>Jain</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xml.org/abc/123/"
targetNamespace="http://schemas.xml.org/abc/123/">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
If I missed something which need to be added to dig into issue. please
let me know...
This following code works here:
import org.jdom.input.SAXBuilder;
import org.jdom.Document;
public class Note {
static final String JAXP_SCHEMA_LANGUAGE =
"http://java.sun.com/xml/jaxp/properties/schemaLanguage";
static final String W3C_XML_SCHEMA =
"http://www.w3.org/2001/XMLSchema";
static final String JAXP_SCHEMA_SOURCE =
"http://java.sun.com/xml/jaxp/properties/schemaSource";
public static void main(String[] args) throws Exception{
SAXBuilder builder = new SAXBuilder();
builder.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
builder.setProperty(JAXP_SCHEMA_SOURCE, "C:/note.xsd");
try{
Document doc = builder.build("C:/note.xml");
}catch(Exception e){
e.printStackTrace();
}
}
}
Arne