W3C home > Mailing lists > Public > xmlschema-dev@w3.org > May 2001

Re: Bug in XSV? ... reference without <import>

From: Roger L. Costello <costello@mitre.org>
Date: Mon, 07 May 2001 17:20:23 -0500
Message-ID: <3AF71FA7.4DBEF817@mitre.org>
To: xmlschema-dev@w3.org, costello@mitre.org
"Henry S. Thompson" wrote:
> 
> Sure there is -- just <import> the namespace, with no
> 'schemaLocation'.  You've now issued a promise that at runtime someone
> will supply types in that namespace (if indeed you use them), but that
> promise won't come due _until_ runtime.  No problem.

Awesome!  So, the weather station schema would look like this:

weather-station.xsd
----------------------------------------------------
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
            targetNamespace="http://www.weather-station.org"
            xmlns="http://www.weather-station.org"
            xmlns:s="http://www.sensor.org"
            elementFormDefault="qualified">
    <xsd:import namespace="http://www.sensor.org"/>
    <xsd:element name="weather-station">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="sensor" type="s:sensor_type" 
                             maxOccurs="unbounded"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>
----------------------------------------------------

Note that the <import> element does not have a schemaLocation.  Each
application provides its own definition of sensor_type, e.g.,

london-sensors.xsd
----------------------------------------------------
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
            targetNamespace="http://www.sensor.org"
            xmlns="http://www.sensor.org"
            elementFormDefault="qualified">
    <xsd:simpleType name="sensor_type">
       <xsd:restriction base="xsd:string">
           <xsd:enumeration value="barometer"/>
           <xsd:enumeration value="thermometer"/>
           <xsd:enumeration value="anenometer"/>
           <xsd:enumeration value="hygrometer"/>
       </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>

Instance documents will reference both schemas:

london-weather-station.xml
----------------------------------------------------
<?xml version="1.0"?>
<weather-station xmlns="http://www.weather-station.org"
      xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
      xsi:schemaLocation=
                "http://www.weather-station.org weather-station.xsd
                 http://www.sensor.org london-sensors.xsd">
    <sensor>thermometer</sensor>
    <sensor>barometer</sensor>
    <sensor>hygrometer</sensor>
    <sensor>anenometer</sensor>
</weather-station>
----------------------------------------------------

Do I now have a correct understanding? 

This is very powerful!  Thanks a lot Henry!  This is definitely going
into Best Practices!  /Roger
Received on Monday, 7 May 2001 17:19:56 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:20 GMT