62,584
社区成员




document = DocumentHelper.createDocument();
document.setDocType(new DefaultDocumentType("随便写,只是对DTD的描述","你的DTD文件的路径"));
FileInputStream is = new FileInputStream(file);
InputStreamReader in = new InputStreamReader(is, "utf-8");
SAXReader builder = new SAXReader();
builder.setValidation(true);
builder.setEntityResolver(new EntityResolver() {
public InputSource resolveEntity(String publicId,
String systemId) throws SAXException, IOException {
InputSource is = new InputSource(
"你的DTD文件所在路径");
return is;
}
});
////XSDTest.java:
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXParseException;
import org.w3c.dom.Document;
public class XSDTest implements ErrorHandler
{
public static void main(String[] args)
{
DocumentBuilderFactory docBuilderFactory = null;
DocumentBuilder docBuilder = null;
try
{
docBuilderFactory = DocumentBuilderFactory.newInstance();
docBuilderFactory.setValidating(true);
docBuilderFactory.setNamespaceAware(true);
docBuilder = docBuilderFactory.newDocumentBuilder();
docBuilder.setErrorHandler(new XSDTest());
Document doc = docBuilder.parse("WellFormed.xml");
}
catch(Exception se)
{
se.printStackTrace();
}
}
public void error(SAXParseException se)
{
System.out.println("Caught an error:" + se.getMessage());
//se.printStackTrace();
}
public void fatalError(SAXParseException se)
{
System.out.println("Caught an fatal error.");
se.printStackTrace();
}
public void warning(SAXParseException se)
{
System.out.println("Caught a warning.");
se.printStackTrace();
}
}
////WellFormed.xml
<?xml version="1.0" encoding="utf-8"?>
<Test
xmlns="WellFormed"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="WellFormed WellFormed.xsd">
<Name>John < Doe</Name>
<!--<temp/>-->
</Test>
////WellFormed.xsd
<?xml version="1.0" ?>
<xs:schema
targetNamespace="WellFormed"
xmlns="WellFormed"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified"
elementFormDefault="qualified">
<xs:element name="Test">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>