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 [EMAIL PROTECTED]
   *
   * 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to