using Schema validation http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2485 *** shadow/2485 Fri Jul 6 15:16:36 2001 --- shadow/2485.tmp.20885 Fri Jul 6 15:16:36 2001 *************** *** 0 **** --- 1,283 ---- + +============================================================================+ + | NullPointerException | + +----------------------------------------------------------------------------+ + | Bug #: 2485 Product: Xerces-J | + | Status: NEW Version: 1.4.1 | + | Resolution: Platform: PC | + | Severity: Normal OS/Version: Linux | + | Priority: Other Component: SAX | + +----------------------------------------------------------------------------+ + | Assigned To: [EMAIL PROTECTED] | + | Reported By: [EMAIL PROTECTED] | + | CC list: Cc: | + +----------------------------------------------------------------------------+ + | URL: | + +============================================================================+ + | DESCRIPTION | + Hi, I'm using Xerces 1.4.1 on RedHat 7.1 on + a Pentium with JDK: + Java(TM) 2 Runtime Environment, + Standard Edition (build 1.4.0-beta-b65) + + When I attempt to use Schema validation I get + parse error: java.lang.NullPointerException + java.lang.NullPointerException + at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1094) + at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1122) + at txmlapk.Txmld.<init>(Txmld.java:89) + at txmlapk.Txmld.main(Txmld.java:38) + + My java source and test files are below. + How can I get Schema validation running? + + Many thanks, + Steve + + ===== begin Txmld.java ===== + + import java.io.IOException; + import java.io.StringWriter; + import java.util.HashMap; + + import org.apache.xerces.dom.TextImpl; + import org.apache.xerces.parsers.DOMParser; + + import org.apache.xml.serialize.OutputFormat; + import org.apache.xml.serialize.Serializer; + import org.apache.xml.serialize.SerializerFactory; + import org.apache.xml.serialize.XMLSerializer; + + import org.w3c.dom.Attr; + import org.w3c.dom.Document; + import org.w3c.dom.Element; + import org.w3c.dom.NamedNodeMap; + import org.w3c.dom.Node; + import org.w3c.dom.NodeList; + import org.xml.sax.ErrorHandler; + import org.xml.sax.InputSource; + import org.xml.sax.SAXParseException; + + import vgenpk.Vgen; + import vgenpk.Vobject; + + + public class Txmld + implements ErrorHandler + { + + + public static void main( + String[] args) + { + new Txmld( args); + } + + + + void badparms( + String msg) + { + System.out.println("Error: " + msg); + System.out.println("args: filename"); + System.exit( 1); + } + + + + public Txmld( + String[] args) + { + Document doc = null; + if (args.length != 1) badparms("wrong num parms"); + String inuri = args[0]; + + try { + DOMParser parser = new DOMParser(); + + parser.setFeature( + +"http://apache.org/xml/features/dom/defer-node-expansion", + false); + + // Validation (must also set error handler): + parser.setFeature( + "http://xml.org/sax/features/validation", + true); + parser.setErrorHandler( this); + + // Namespace + parser.setFeature( + "http://xml.org/sax/features/namespaces", + true); + + // Schema support + parser.setFeature( + "http://apache.org/xml/features/validation/schema", + true); + + // Schema full constraint checking + parser.setFeature( + +"http://apache.org/xml/features/validation/schema-full-checking", + true); + + System.out.println("inuri: \"" + inuri + "\""); + parser.parse( inuri); + doc = parser.getDocument(); + } + catch (Exception spe) { + System.out.println( "parse error: " + spe); + spe.printStackTrace(); + System.exit(1); + } + + } // end constructor + + + + // ErrorHandler interface + public void error( SAXParseException exc) { + System.out.println("ErrorHandler: error: " + exc); + } + public void fatalError( SAXParseException exc) { + System.out.println("ErrorHandler: fatalError: " + exc); + } + public void warning( SAXParseException exc) { + System.out.println("ErrorHandler: warning: " + exc); + } + + } // end class Txmld + + ===== end file ===== + + + + + + ===== begin tempa.xml ===== + <?xml version="1.0" encoding="UTF-8"?> + <personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="tempa.xsd"> + + <person id="Big.Boss" > + <name><family>Boss</family> <given>Big</given></name> + <email>[EMAIL PROTECTED]</email> + <link subordinates="one.worker two.worker three.worker four.worker + five.worker"/> + </person> + + <person id="one.worker"> + <name><family>Worker</family> <given>One</given></name> + <email>[EMAIL PROTECTED]</email> + <link manager="Big.Boss"/> + </person> + + <person id="two.worker"> + <name><family>Worker</family> <given>Two</given></name> + <email>[EMAIL PROTECTED]</email> + <link manager="Big.Boss"/> + </person> + + <person id="three.worker"> + <name><family>Worker</family> <given>Three</given></name> + <email>[EMAIL PROTECTED]</email> + <link manager="Big.Boss"/> + </person> + + <person id="four.worker"> + <name><family>Worker</family> <given>Four</given></name> + <email>[EMAIL PROTECTED]</email> + <link manager="Big.Boss"/> + </person> + + <person id="five.worker"> + <name><family>Worker</family> <given>Five</given></name> + <email>[EMAIL PROTECTED]</email> + <link manager="Big.Boss"/> + </person> + + </personnel> + ===== end file ===== + + + + + + ===== begin tempa.xsd ===== + <?xml version="1.0" encoding="UTF-8"?> + <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + + <xs:element name="personnel"> + <xs:complexType> + <xs:sequence> + <xs:element ref="person" minOccurs='1' maxOccurs='unbounded'/> + </xs:sequence> + </xs:complexType> + + <xs:unique name="unique1"> + <xs:selector xpath="person"/> + <xs:field xpath="@name"/> + </xs:unique> + <xs:key name='empid'> + <xs:selector xpath="person"/> + <xs:field xpath="@id"/> + </xs:key> + <xs:keyref name="keyref1" refer='empid'> + <xs:selector xpath="person"/> + <xs:field xpath="link/@manager"/> + </xs:keyref> + + </xs:element> + + <xs:element name="person"> + <xs:complexType> + <xs:sequence> + <xs:element ref="name"/> + <xs:element ref="email" minOccurs='0' maxOccurs='unbounded'/> + <xs:element ref="url" minOccurs='0' maxOccurs='unbounded'/> + <xs:element ref="link" minOccurs='0' maxOccurs='1'/> + </xs:sequence> + <xs:attribute name="id" type="xs:ID" use='required'/> + <xs:attribute name="note" type="xs:string"/> + <xs:attribute name="contr" default="false"> + <xs:simpleType> + <xs:restriction base = "xs:string"> + <xs:enumeration value="true"/> + <xs:enumeration value="false"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="salary" type="xs:integer"/> + </xs:complexType> + </xs:element> + + <xs:element name="name"> + <xs:complexType> + <xs:all> + <xs:element ref="family"/> + <xs:element ref="given"/> + </xs:all> + </xs:complexType> + </xs:element> + + <xs:element name="family" type='xs:string'/> + + <xs:element name="given" type='xs:string'/> + + <xs:element name="email" type='xs:string'/> + + <xs:element name="url"> + <xs:complexType> + <xs:attribute name="href" type="xs:string" default="http://"/> + </xs:complexType> + </xs:element> + + <xs:element name="link"> + <xs:complexType> + <xs:attribute name="manager" type="xs:IDREF"/> + <xs:attribute name="subordinates" type="xs:IDREFS"/> + </xs:complexType> + </xs:element> + + <xs:notation name='gif' public='-//APP/Photoshop/4.0' system='photoshop.exe'/> + + </xs:schema> + ===== end file ===== --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
