/****************************************
* application : dPrint_DPS * class name : Validator1.java * describing : * copyright : Neusoft * company : Neusoft * create time : 2006/09/01 * * @author Zhangzhongl * @version 0.8 ****************************************/ import java.io.File; import org.iso_relax.verifier.Schema; import org.iso_relax.verifier.Verifier; import org.iso_relax.verifier.VerifierFactory; import org.iso_relax.verifier.VerifierHandler; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; import org.dom4j.io.SAXWriter; import org.xml.sax.ErrorHandler; import org.xml.sax.SAXParseException; public class Validator1
{
private String
schemaURI;
private Document document; public
Validator1(Document document, String schemaURI)
{
this.schemaURI = schemaURI; this.document = document; } public boolean
validate() throws Exception {
System.out.println("1"); // (1) use autodetection of schemas VerifierFactory factory = new com.sun.msv.verifier.jarv.TheFactoryImpl(); System.out.println("2"); Schema schema = factory.compileSchema(schemaURI); System.out.println("3"); // (2) configure a Vertifier Verifier verifier = schema.newVerifier(); System.out.println("4"); verifier.setErrorHandler(new ErrorHandler() { public void error(SAXParseException saxParseEx) { System.out.println("5"); saxParseEx.printStackTrace(); } public
void fatalError(SAXParseException saxParseEx)
{
System.out.println("6"); saxParseEx.printStackTrace(); } public
void warning(SAXParseException saxParseEx)
{
System.out.println("7"); saxParseEx.printStackTrace(); } }); // (3) starting validation by resolving the dom4j document into sax VerifierHandler handler = verifier.getVerifierHandler(); System.out.println("8"); SAXWriter writer = new SAXWriter(handler); System.out.println("9"); writer.write(document);////////////////////////////////////////////////////////////// System.out.println("10"); return handler.isValid(); } public static void main(String []args) throws DocumentException{ SAXReader reader=new SAXReader(); Document document=reader.read(new File("printapp-config2.xml")); Validator1 val=new Validator1(document,"printapp-config.xsd"); try { System.out.println(val.validate()); } catch (Exception e) { System.out.println("0"); e.printStackTrace(); } } } <?xml version="1.0"
encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified">
<xsd:element
name="printapp-config">
<xsd:complexType> <xsd:sequence> <xsd:element ref="print-target-list" minOccurs="1" maxOccurs="1" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element
name="printapp-version" type="versionEnum" />
<xsd:element
name="print-target-list">
<xsd:complexType> <xsd:sequence> <xsd:element ref="target" minOccurs="2" maxOccurs="2" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element
name="target">
<xsd:complexType> <xsd:attribute name="type" type="typeEnum" use="required" /> <xsd:attribute name="available" type="availableEnum" use="required" /> </xsd:complexType> </xsd:element> <xsd:simpleType
name="typeEnum">
<xsd:restriction base="xsd:string"> <xsd:enumeration value="printer" /> <xsd:enumeration value="setting" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType
name="availableEnum">
<xsd:restriction base="xsd:string"> <xsd:pattern value="true|false" /> </xsd:restriction> </xsd:simpleType> </xsd:schema>
<?xml version="1.0"
?>
<printapp-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="printapp-config.xsd">
<printapp-version>2.2.0</printapp-version>
<print-target-list>
<target type="setting" available="true" /> <target type="printer" available="true" /> </print-target-list> </printapp-config> Confidentiality Notice: The information contained in this e-mail and any accompanying attachment(s) is intended only for the use of the intended recipient and may be confidential and/or privileged of Neusoft Group Ltd., its subsidiaries and/or its affiliates. If any reader of this communication is not the intended recipient, unauthorized use, forwarding, printing, storing, disclosure or copying is strictly prohibited, and may be unlawful. If you have received this communication in error, please immediately notify the sender by return e-mail, and delete the original message and all copies from your system. Thank you. |
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________ dom4j-dev mailing list dom4j-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dom4j-dev