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]

Reply via email to