You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by el...@apache.org on 2003/05/28 17:02:59 UTC

cvs commit: xml-xerces/java/tests/jaxp/data a.xsd address.xsd ipo.xsd personal.xsd

elena       2003/05/28 08:02:59

  Modified:    java/tests/jaxp/data personal.xsd
  Added:       java/tests/jaxp PropertyTest.java
               java/tests/jaxp/data a.xsd address.xsd ipo.xsd
  Log:
  Add tests for JAXP schemaSource property
  
  Revision  Changes    Path
  1.1                  xml-xerces/java/tests/jaxp/PropertyTest.java
  
  Index: PropertyTest.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xerces" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 2003, International
   * Business Machines, Inc., http://www.apache.org.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package jaxp;
  
  import javax.xml.parsers.SAXParser;
  import javax.xml.parsers.SAXParserFactory;
  
  import org.xml.sax.SAXException;
  import org.xml.sax.SAXParseException;
  import org.xml.sax.helpers.DefaultHandler;
  
  /**
   * This sample program tests JAXP 1.2 properties
   */
  public class PropertyTest extends DefaultHandler{
  
  	public static void main(String[] argv) {
  
  		try {
  			SAXParserFactory spf = SAXParserFactory.newInstance();
  			spf.setValidating(true);
  			spf.setNamespaceAware(true);
  			SAXParser parser = spf.newSAXParser();
  			parser.setProperty(
  				"http://java.sun.com/xml/jaxp/properties/schemaLanguage",
  				"http://www.w3.org/2001/XMLSchema");
  			parser.setProperty(
  				"http://java.sun.com/xml/jaxp/properties/schemaSource",
  				new String[] { "personal.xsd", "ipo.xsd" });
  			parser.parse("tests/jaxp/data/personal-schema.xml", new PropertyTest());
  
  			parser = spf.newSAXParser();
  			parser.setProperty(
  				"http://java.sun.com/xml/jaxp/properties/schemaLanguage",
  				"http://www.w3.org/2001/XMLSchema");
  			parser.setProperty(
  				"http://java.sun.com/xml/jaxp/properties/schemaSource",
  				new String[] { "address.xsd", "ipo.xsd", });
  
  			try {
  				parser.parse("tests/jaxp/data/personal-schema.xml", new PropertyTest());
  				System.err.println("ERROR!");
  			} catch (Exception e) {
  			}
  			
  			parser = spf.newSAXParser();
  			parser.setProperty(
  				"http://java.sun.com/xml/jaxp/properties/schemaLanguage",
  				"http://www.w3.org/2001/XMLSchema");
  			parser.setProperty(
  				"http://java.sun.com/xml/jaxp/properties/schemaSource",
  				new String[] { "personal.xsd", "ipo.xsd", "a.xsd"});
  
  			try {
  				parser.parse("tests/jaxp/data/personal-schema.xml", new PropertyTest());
  				System.err.println("ERROR!");
  			} catch (Exception e) {
  			}
  			
  		} catch (Exception ex) {
  			ex.printStackTrace();
  		}
  		System.out.println("done.");
  	}
  	
  	/** Warning. */
  	public void warning(SAXParseException ex) throws SAXException {
  		printError("Warning", ex);
  	} // warning(SAXParseException)
  
  	/** Error. */
  	public void error(SAXParseException ex) throws SAXException {
  		printError("Error", ex);
  	} // error(SAXParseException)
  
  	/** Fatal error. */
  	public void fatalError(SAXParseException ex) throws SAXException {
  		printError("Fatal Error", ex);
  		throw ex;
  	} // fatalError(SAXParseException)
  
  
  	protected void printError(String type, SAXParseException ex) {
  
  		System.err.print("[");
  		System.err.print(type);
  		System.err.print("] ");
  		String systemId = ex.getSystemId();
  		if (systemId != null) {
  			int index = systemId.lastIndexOf('/');
  			if (index != -1)
  				systemId = systemId.substring(index + 1);
  			System.err.print(systemId);
  		}
  		System.err.print(':');
  		System.err.print(ex.getLineNumber());
  		System.err.print(':');
  		System.err.print(ex.getColumnNumber());
  		System.err.print(": ");
  		System.err.print(ex.getMessage());
  		System.err.println();
  		System.err.flush();
  
  	} // printError(String,SAXParseException)
  
  
  }
  
  
  
  1.2       +1 -1      xml-xerces/java/tests/jaxp/data/personal.xsd
  
  Index: personal.xsd
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/tests/jaxp/data/personal.xsd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- personal.xsd	15 Feb 2002 03:00:58 -0000	1.1
  +++ personal.xsd	28 May 2003 15:02:59 -0000	1.2
  @@ -1,6 +1,6 @@
   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
  -
  +<xs:include schemaLocation="a.xsd"/>
    <xs:element name="personnel">
     <xs:complexType>
      <xs:sequence>
  
  
  
  1.1                  xml-xerces/java/tests/jaxp/data/a.xsd
  
  Index: a.xsd
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
  
   <xs:element name="family2" type='xs:string'/>
  
  </xs:schema>
  
  
  
  1.1                  xml-xerces/java/tests/jaxp/data/address.xsd
  
  Index: address.xsd
  ===================================================================
  <schema targetNamespace="http://www.example.com/IPO"
          xmlns="http://www.w3.org/2001/XMLSchema"
          xmlns:ipo="http://www.example.com/IPO"
          elementFormDefault="qualified">
  
   <annotation>
    <documentation xml:lang="en">
     Addresses for International Purchase order schema
     Copyright 2000 Example.com. All rights reserved.
    </documentation> 
   </annotation>
  
   <complexType name="Address">
    <sequence>
     <element name="name"   type="string"/>
     <element name="street" type="string"/>
     <element name="city"   type="string"/>
    </sequence>
   </complexType>
  
   <complexType name="USAddress">
    <complexContent>
     <extension base="ipo:Address">
      <sequence>
       <element name="state" type="ipo:USState"/>
       <element name="zip"   type="positiveInteger"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
  
   <complexType name="UKAddress">
    <complexContent>
     <extension base="ipo:Address">
      <sequence>
       <element name="postcode" type="ipo:UKPostcode"/>
      </sequence>
      <attribute name="exportCode" type="positiveInteger" fixed="1"/>
     </extension>
    </complexContent>
   </complexType>
  
   <!-- other Address derivations for more countries --> 
  
   <simpleType name="USState">
    <restriction base="string">
     <enumeration value="AK"/>
     <enumeration value="AL"/>
     <enumeration value="AR"/>
     <enumeration value="PA"/>
  
     <!-- and so on ... -->
    </restriction>
   </simpleType>
  
   <!-- simple type definition for UKPostcode -->
   <simpleType name="UKPostcode">
    <restriction base="string">
      <pattern value="[A-Z]{2}\d\s\d[A-Z]{2}"/>
    </restriction>
  </simpleType>
  
  </schema>
  
  
  
  
  1.1                  xml-xerces/java/tests/jaxp/data/ipo.xsd
  
  Index: ipo.xsd
  ===================================================================
  <?xml version="1.0"?>
  <schema targetNamespace="http://www.example.com/IPO" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ipo="http://www.example.com/IPO" elementFormDefault="qualified">
    <annotation>
      <documentation xml:lang="en">
        International Purchase order schema for Example.com
        Copyright 2000 Example.com. All rights reserved.
      </documentation>
    </annotation>
    <!-- include address constructs -->
    <include schemaLocation="address.xsd"/>
    <element name="purchaseOrder" type="ipo:PurchaseOrderType"/>
    <element name="comment" type="string"/>
    <complexType name="PurchaseOrderType">
      <sequence>
        <element name="shipTo" type="ipo:Address"/>
        <element name="billTo" type="ipo:Address"/>
        <element ref="ipo:comment" minOccurs="0"/>
        <element name="items" type="ipo:Items"/>
      </sequence>
      <attribute name="orderDate" type="date"/>
    </complexType>
    <complexType name="Items">
      <sequence>
        <element name="item" minOccurs="0" maxOccurs="unbounded">
          <complexType>
            <sequence>
              <element name="productName" type="string"/>
              <element name="quantity">
                <simpleType>
                  <restriction base="positiveInteger">
                    <maxExclusive value="100"/>
                  </restriction>
                </simpleType>
              </element>
              <element name="USPrice" type="decimal"/>
              <element ref="ipo:comment" minOccurs="0"/>
              <element name="shipDate" type="date" minOccurs="0"/>
            </sequence>
            <attribute name="partNum" type="ipo:SKU" use="required"/>
          </complexType>
        </element>
      </sequence>
    </complexType>
    <simpleType name="SKU">
      <restriction base="string">
        <pattern value="\d{3}-[A-Z]{2}"/>
      </restriction>
    </simpleType>
  </schema>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org