I'm using xerces 2.0.2 and according to XML tutorial at:

http://java.sun.com/webservices/docs/1.0/tutorial/doc/JAXPDOM9.html

It's possible to specify multiple schemas within your program by setting the 
schemaSource property to an array of schema sources. However, the following 
program fails at runtime. I think the problem starts in XMLSchemaLoader.java.

Eddie


// ***MultiSchemaSpecifiedInProgram.java ****
import javax.xml.parsers.*;
import org.xml.sax.*;
import java.io.File;
import org.w3c.dom.*;

public class MultiSchemaSpecifiedInProgram {
        static final String JAXP_SCHEMA_LANGUAGE =
                "http://java.sun.com/xml/jaxp/properties/schemaLanguage";;
        
        static final String W3C_XML_SCHEMA =
                "http://www.w3.org/2001/XMLSchema";;

        static final String ContainerSchema  = "container.xsd";
        static final String ItemsSchema      = "items.xsd";

        static final String[] schemas = {
                ContainerSchema,
                        ItemsSchema
    };
        
        static final String JAXP_SCHEMA_SOURCE =
                "http://java.sun.com/xml/jaxp/properties/schemaSource";;

    public static void main(String argv[]) {
                Document document;
        DocumentBuilderFactory factory =
            DocumentBuilderFactory.newInstance();
                factory.setValidating(true);
        factory.setNamespaceAware(true);
                try {
                        factory.setAttribute(JAXP_SCHEMA_LANGUAGE, 
W3C_XML_SCHEMA);
                        factory.setAttribute(JAXP_SCHEMA_SOURCE, schemas);
                } 
                catch (IllegalArgumentException e) {
                        System.out.println(e);
                        e.printStackTrace();
                }

        try {
           DocumentBuilder builder = factory.newDocumentBuilder();
           document = builder.parse( new File("instance.xml") );
        } catch (Exception e) {
                        System.out.println(e);
                        e.printStackTrace();
        }
        }
}

******** instance.xml **********
<?xml version="1.0" encoding="ISO-8859-1"?>
<c:container xmlns:c="urn:container"
         xmlns:i="urn:items"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>

  <i:item>First item</i:item>
  <i:item>Second item</i:item>
</c:container>

******** container.xsd **********
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
           targetNamespace="urn:container">

  <xs:element name="container">
    <xs:complexType>
      <xs:sequence>
        <xs:any minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

******** items.xsd **********
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
           targetNamespace="urn:items">

  <xs:element name="item" type="xs:string" />

</xs:schema>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to