Thanks for your responses! I have a
more detailed understanding of the problem now, and a follow up question.
First off, please note that I now have a prefix definition for acx in the
snippet from the register-device schema below.
Now, it turns out that I have an include
dependencies as follows:
csta namespace:
csta-schemas.xsd includes device-identifiers.xsd
(and many more…)
acx namespace:
avaya-csta.xsd includes csta-schemas.xsd
avaya-csta.xsd includes register-device.xsd
(and many more…)
device-identifiers.xsd has the definition
of the csta:DeviceID type, so you can see that this is how the register-device
schema is aware of this type: register-device.xsd is included by the main
schema (avaya-csta.xsd), which had previously included device-identifiers.xsd
by way of csta-schemas.xsd.
Now, the problem is that the XML that
castor produces for the RegisterDevice request doesn’t have any
indication on the device element that indicates that it belongs to the csta
namespace. Is this a bug in castor or should we be doing something
different in the schema to enable it to properly tag the device element in the
generated xml?
Thanks again,
Joel
-----Original Message-----
From: Chiusano Joseph
[mailto:chiusano_joseph@bah.com]
Sent: Wednesday,
December 15, 2004 3:45 PM
To: Ezell, Joel M (Joel); xml-dev@lists.xml.org
Subject: RE: [xml-dev] Valid
reference to external namespace?
You have the correct approach in
general - you will need to include (or import, depending on whether the target
namespace of the external schema is the same as the "main" schema)
the schema that contains the RegisterDevice type. Given the information below,
it's impossible to tell if it's correct as the reader cannot tell whether or
not the RegisterDevice type is in one of the 2 schemas you've included.
You also need to include the target
namespace for each included schema - it's missing.
There is also no prefix definition
for "acx:" in the schema below, but there should be one.
Kind Regards,
Joseph Chiusano
Booz Allen Hamilton
Strategy and Technology Consultants
to the World
From: Ezell, Joel M (Joel)
[mailto:joele@avaya.com]
Sent: Wednesday,
December 15, 2004 4:16 PM
To: xml-dev@lists.xml.org
Subject: [xml-dev] Valid reference
to external namespace?
Hello,
Below, I
have an example of an XSD file that is referencing a type defined in another
schema, but I’m not positive that it’s doing it correctly.
Note that the CSTA namespace is defined as “csta”, and in the
RegisterDevice type, I reference a type from that namespace:
type=”csta:DeviceID”. There is no explicit “include”
statement. Is this a legitimate way to reference that type? Castor
seems to think so, but I wanted to verify it anyway…
Thanks!
Joel Ezell
Avaya Inc.
<?xml
version="1.0" encoding="UTF-8"?>
<xsd:schema
targetNamespace="http://www.avaya.com/csta"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:csta=http://www.ecma.ch/standards/ecma-323/csta/ed2
xmlns:acx="http://www.avaya.com/csta"
elementFormDefault="qualified"
attributeFormDefault="qualified">
<xsd:include schemaLocation="ip-address.xsd"/>
<xsd:include schemaLocation="login-info.xsd"/>
<!-- RegisterDevice -->
<xsd:element name="RegisterDevice">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="device"
type="csta:DeviceID"/>
<xsd:element name="loginInfo"
type="acx:LoginInfo" minOccurs="0"/>
<xsd:element name="localMediaInfo"
type="acx:MediaInfo" minOccurs="0"/>
<xsd:element ref="csta:extensions" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>