[xsde-users] Re: Cannot get namespaces to work

Robert S. Grimes rsgrimes at rcn.com
Wed Jun 10 08:29:36 EDT 2020


I also wanted to note that, using xmllint, the schema successfully validate the XML file; of course, same is true of the XSD/e example. Something is odd. The example shows we can use namespaces, but my code fails, though as best I see, I do the same thing. I must be missing something trivial, yet crucial... 

----- Original Message -----


I have a schema that was working for quite some time; however, I've become tired of the fact that it generates global classes. I am trying to get XSD/e to generate my schema's classes into a namespace, and also, trying to write an xml file that the parser recognizes. I can't seem to figure out how to do that, as I keep getting an "unexpected element encountered" error on the root element of my xml document. 



My old schema looks like this. For brevity, I don't show the rest of the schema; it is the same as the next schema, without any "xdcs:" prefixes. 


<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 


</xsd:schema> 


My new schema looks like this 


<?xml version="1.0"?> 

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:xdcs="http://www.rsgassoc.com/XMLConfig" 
targetNamespace="http://www.rsgassoc.com/XMLConfig"> 


<xs:complexType name="ComponentConfig"> 
<xs:attribute name="cname" type="xs:string" use="required"/> 
</xs:complexType> 


<xs:complexType name="GlobalConfig"> 
<xs:sequence> 
<xs:element name="name" type="xs:string"/> 
<xs:element name="version" type="xs:string"/> 
</xs:sequence> 
</xs:complexType> 


<xs:complexType name="PlatformConfig"> 
<xs:sequence> 
<xs:element name="GlobalConfig" type="xdcs:GlobalConfig"/> 
<xs:element name="ComponentConfig" type="xdcs:ComponentConfig"/> 
</xs:sequence> 
</xs:complexType> 


<xs:element name="PlatformConfig" type="xdcs:PlatformConfig"/> 


</xsd:schema> 


Here is a sample XML. 


1 <?xml version="1.0"?> 
2 <xdcs:PlatformConfig xmlns:xdcs="http://www.rsgassoc.com/XMLConfig" 
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
4 xsi:schemaLocation="http://www.rsgassoc.com/XMLConfig PlatformConfig.xsd"> 
5 
6 <xdcs:GlobalConfig> 
7 <name>MyDeviceName</name> 
8 <version>v0.2</version> 
9 </xdcs:GlobalConfig> 

10 <xdcs:ComponentConfig cname="MyCompType" iname="MyCompInstance"/> 


11 </xdcs:PlatformConfig> 


The error throw is this (I've modeled this code from examples): 


Test.xml:4:95: error: unexpected element encountered' 


Line 4, column 95 is at the closing angle brace (>) for the xdcs:PlatformConfig element that spans lines 2-4. I cannot see anything wrong with this, but my XML/XSD skills are rusty at best. As far as I can tell, the schema is (essentially) identical to the "protocol" example in exampls/cxx/parser/multiroot/protocol.xsd, and the xml identical to the withdraw.xml file in the same directory. What gives? I am rather desperate, as I have a big deadline coming that I just can't miss - yeah, don't we all? 


Regards, 
Bob 






More information about the xsde-users mailing list