I am reposting this as this seems to be a genuine bug. Any feedback?
> -----Original Message-----
> From: Kirchhoff, Florian [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, June 06, 2002 3:35 PM
> To: [EMAIL PROTECTED]
> Subject: [castor-dev] Restriction base type not found if imported
>
>
> Hi.
>
> I am using castor-0.9.3.19-xml to compile a schema using
> SourceGenerator. I have a schema A that imports another
> schema B. In A I have a complex type "extension" that is a
> restriction of a complexType baseT. baseT is from a different
> namespace since it was imported (schema are show at the end).
>
> SourcGenerator fails with this error:
> the simple type 'baseT' is not a built-in type as defined in
> XML Schema specification.
>
> Looking at the code I think I see where the problem lies.
> Here is the calling sequence:
>
> The ComplexContentRestrictionUnmarshaller constructor calls:
>
> _schema.getType("qb:baseT")
>
> which calls
>
> getSimpleType("qb:baseT");
>
> which calls
>
> Schema schema = getImportedSchema(ns);
> schema.getSimpleType(canonicalName);
>
> Where ns is "http://www.q.com/XMLSchema/BIM" and
> canonicalName is "baseT".
>
> Now in getSimpleType (now for the imported Schema object
> (b.xsd)) name has no namespace prefix so the namespace is
> assumed (in this case
> "http://www.w3.org/2001/XMLSchema") and the call fails
> because no http://www.w3.org/2001/XMLSchema:baseT type is known.
>
> Doing this in getSimpleType solves the problem, but I am not
> sure it's the right thing to do:
>
> Schema schema = getImportedSchema(ns);
> schema.getSimpleType(name); // look up the fully qualified name (with
> prefix)
>
> How can this issue be fixed?
>
> Thanks.
>
> Florian Kirchhoff
>
> ==== a.xsd ====
> <?xml version = "1.0" encoding = "UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://www.q.com/XMLSchema"
> xmlns:qb="http://www.q.com/XMLSchema/BIM"
> xmlns:qw="http://www.q.com/XMLSchema"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> elementFormDefault = "qualified">
>
> <import namespace="http://www.q.com/XMLSchema/BIM"
> schemaLocation = "b.xsd"/>
>
> <complexType name="extension">
> <complexContent>
> <restriction base = "qb:baseT">
> <sequence>
> <element name = "Code" minOccurs = "0">
> <simpleType>
> <restriction base = "string">
> <enumeration value = "GdCust"/>
> </restriction>
> </simpleType>
> </element>
> </sequence>
> </restriction>
> </complexContent>
> </complexType>
>
> <element name = "foo" type="qw:extension"/>
>
> </schema>
>
> === b.xsd ===
> <?xml version = "1.0" encoding = "UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://www.q.com/XMLSchema/BIM"
> xmlns:qb="http://www.q.com/XMLSchema/BIM"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> elementFormDefault = "qualified">
>
> <complexType name="baseT">
> <sequence>
> <element name="Code" type = "string" minOccurs = "0"/>
> </sequence>
> </complexType>
>
> </schema>
>
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev