Hi, 

I am reading a XML-Schema which itselfs imports other schemas.

The schema looks like:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema targetNamespace="http://www.cdisc.org/ns/odm/v1.2"; 
           xmlns="http://www.cdisc.org/ns/odm/v1.2";
           xmlns:xs="http://www.w3.org/2001/XMLSchema";
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#";
           xmlns:xml="http://www.w3.org/XML/1998/namespace"; 
           xmlns:sas="http://www.sas.com/xml/schemas"; 
           elementFormDefault="qualified" attributeFormDefault="unqualified">
    <!--
          import ODM foundation schemas
      -->
    <xs:import namespace="http://www.w3.org/XML/1998/namespace"; 
schemaLocation="xml.xsd"/>
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#";   
schemaLocation="xmldsig-core-schema.xsd"/> 
    <!-- include here any vendor extensions -->
    <xs:include schemaLocation="sas-extension.xsd"/>
</xs:schema>

Now, for a reason nothing to do with XMLBeans, I need the prefixes that were 
used in the schema for each of the namespaces. I realize the prefixes are 
nothing fixed, one could use others, but I would like to know them anyway.
>From the mailing list, I found some information that getting the prefixes was 
>not possible in XMLBeans 1.X, and I wander whether it is possible to retrieve 
>them in 2.0.
With my current code, I do not see them when e.g. using 
SchemaProperty[] attributes = sge[i].getType().getAttributeProperties();

So my question is: is it possible to retrieve the used prefixes with XMLBeans 
2.0 ?

Part of my current code is below.

With best regards

Jozef

=============

List sdocs = new ArrayList();
XmlOptions xmloptions = new XmlOptions();
xmloptions.setLoadLineNumbers().setLoadMessageDigest();
xmloptions.setCompileDownloadUrls(); // allow compilation of schemas that are 
imported/included using a URL
// xmloptions.setSaveNamespacesFirst();  // just trying, 30.8.2005
try {
        sdocs.add(XmlObject.Factory.parse(schemaFile, xmloptions));
} catch (Exception e) {
        System.err.println( schemaFile + " not loadable: " + e );
        String errormessage = "Could not read the Schema File:\n" + 
schemaFile.getAbsolutePath();
        JOptionPane.showMessageDialog(new MyJFrame(),errormessage);     
        OK = false;             
}
if(OK == true) {
        XmlObject[] schemas = (XmlObject[])sdocs.toArray(new XmlObject[0]);
        XmlObject mySchema = schemas[0];
        System.out.println("Schema validation gives : " + mySchema.validate());
        // compile the schemas
        SchemaTypeLoader sLoader = null;
        Collection compErrors = new ArrayList();
        XmlOptions schemaOptions = new XmlOptions();
        schemaOptions.setCompileDownloadUrls(); // allow import of other 
schemas using URLs
        schemaOptions.setErrorListener(compErrors);
        try {
                if (schemas != null && schemas.length > 0) sts = 
XmlBeans.compileXsd(schemas, sLoader, schemaOptions);
        } catch (Exception e) {
                if (compErrors.isEmpty() || !(e instanceof XmlException)) {
                        e.printStackTrace(System.err);
                }
                System.out.println("Schema invalid:" + (partial ? " couldn't 
recover from errors" : ""));
                for (Iterator i = compErrors.iterator(); i.hasNext(); ) 
System.out.println(i.next());
                String errormessage = "Invalid ODM Schema \n" + "could not 
convert Schema to ODM elements";
                JOptionPane.showMessageDialog(new MyJFrame(), errormessage);
                OK = false;
        }
}

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

Reply via email to