W3C home > Mailing lists > Public > xmlschema-dev@w3.org > November 2005

Re: No, I Don't Want No Namespace!

From: George Cristian Bina <george@oxygenxml.com>
Date: Wed, 23 Nov 2005 03:22:12 +0200
Message-ID: <4383C444.1030706@oxygenxml.com>
To: Tyson Tate <tytate@cadrc.calpoly.edu>
CC: xmlschema-dev@w3.org

Hi Tyson,

Just change

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:cdm="http://www.xyzcorp.com/ctypes"
xmlns="http://www.xyzcorp.com/Vessel"
targetNamespace="http://www.xyzcorp.com/Vessel"
elementFormDefault="unqualified" attributeFormDefault="unqualified">


to

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:cdm="http://www.xyzcorp.com/ctypes"
xmlns="http://www.xyzcorp.com/Vessel"
targetNamespace="http://www.xyzcorp.com/Vessel"
elementFormDefault="qualified" attributeFormDefault="unqualified">

--------------------^^^^^^^^^

Your VesselBase element is declared locally and if you set the 
elementFormDefault to unqualified then all the local element 
declarations go to no namespace instead of target namespace and in your 
XML document the VesselBase element is in the 
http://www.xyzcorp.com/Vessel (target) namespace. To have the local 
elements in the target namespace you need to have the element form set 
to qualified.

Best Regards,
George	
--
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


Tyson Tate wrote:
> 
> I'm having something of a cryptic namespace problem and I simply can't 
> seem to worm my way out of it. Basically, I've been given XML files that 
> I can not modify and I wrote a schema to match them. The xml files look 
> something like the following:
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <Vessel xmlns="http://www.xyzcorp.com/Vessel" 
> xmlns:cdm="http://www.xyzcorp.com/cdmtypes" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
> xsi:schemaLocation="www.xyzcorp.com/Vessel
> C:\path\to\schema\Vessel2.xsd">
>     <VesselBase>
>         <TrimStability>
> ............
> 
> 
> The related schema looks like so:
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
> xmlns:cdm="http://www.xyzcorp.com/ctypes" 
> xmlns="http://www.xyzcorp.com/Vessel" 
> targetNamespace="http://www.xyzcorp.com/Vessel" 
> elementFormDefault="unqualified" attributeFormDefault="unqualified">
>     <xs:import namespace="http://www.xyzcorp.com/ctypes" 
> schemaLocation="ctypes.xsd"/>
>     <xs:element name="Vessel" type="VesselType">
>     </xs:element>
>     <xs:complexType name="VesselType">
>         <xs:sequence>
>             <xs:element name="VesselBase" type="VesselBaseType"/>
>         </xs:sequence>
>     </xs:complexType>
> .............
> 
> 
> My problem is that it doesn't validate. XMLSpy 2005 gives me this 
> wonderfully useful error message: "Unexpected element 'VesselBase' in 
> element 'Vessel'. Expected: VesselBase" (Isn't that helpful?) Using an 
> in-house Java 1.5-based validation tool (uses the Java-supplied XML 
> classes), I get: "XML Fatal Error: On line 2, column 329, the following 
> fatal error occurred: cvc-elt.1: Cannot find the declaration of element 
> 'Vessel'."
> 
> Based on that second error message, I'm assuming this is a namespace 
> issue. Am I wrong? Despite having worked with XML for months now, I 
> still can't get namespaces straight. Very frustrating. :-/
> 
> Thanks in advance,
> Tyson Tate
> Developer, CADRC
> 
> 
Received on Wednesday, 23 November 2005 01:22:27 GMT

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