geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Radim Kolar <...@sendmail.cz>
Subject Re: missing XSD schemas on web
Date Mon, 29 Aug 2011 05:22:47 GMT
Dne 29.8.2011 6:25, chi runhua napsal(a):
> The schema files are actually under 
> http://geronimo.apache.org/xml/ns/, not sure it's the problem of GEP 
> validation,  might need someone else to look into the GEP code.
I am not talking about GEP code. In GEP it might work because it 
probably comes comes with xsd schemas already included. I am talking 
about standard XML validation in any XML editor or Eclipse without GEP.

I will describe problem in more detail. If you validate against 
http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1, XML downloads XSD from 
schema location   
xsi:schemaLocation="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1 
http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1">


ponto:(admin)~>fetch http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1
web-2.0.1                                     100% of 6143  B  214 kBps
ponto:(admin)~>

so we have got file. Now time to parse it with XML parser. File has 
includes inside:

ponto:(admin)~>grep -i import web-2.0.1
<xs:import namespace="http://geronimo.apache.org/xml/ns/naming-1.2" 
schemaLocation="geronimo-naming-1.2.xsd"/>
<xs:import 
namespace="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" 
schemaLocation="geronimo-application-2.0.xsd"/>
<xs:import namespace="http://geronimo.apache.org/xml/ns/deployment-1.2" 
schemaLocation="geronimo-module-1.2.xsd"/>
<xs:import namespace="http://java.sun.com/xml/ns/persistence" 
schemaLocation="http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"/>
                             Reference to abstract service element 
defined in imported
ponto:(admin)~>

lets look at first import. We are going to import namespace 
http://geronimo.apache.org/xml/ns/naming-1.2 from URL 
http://geronimo.apache.org/xml/ns/j2ee/geronimo-naming-1.2.xsd (schema 
location is added to current URL) which does not exists on geronimo web 
server.

naming schema exists at different location

ponto:(admin)~>fetch http://geronimo.apache.org/xml/ns/naming-1.2
naming-1.2                                    100% of   52 kB  624 kBps
ponto:(admin)~>

but your schemas refers to xsd import files in same directory like main 
schema which is good because validation on XSD schemas downloaded localy 
will work if you dump all schemas into one directory like you do in 
geronimo distro. To make XML validation work locally you just need to 
point schema location to your geronimo install directory. something like 
this:

xsi:schemaLocation="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1 
file:///usr/local/wasce/schema/geronimo-web-2.0.1.xsd"

and everything works. But for making validation to work over HTTP you 
need to upload these XSD files with xsd extension to 
http://geronimo.apache.org/xml/ns/j2ee/ as well to 
http://geronimo.apache.org/xml/ns/ You need to have them several times 
on web server, once for xs:import with XSD extension and second without 
extension for xsi:schemalocation.


Mime
View raw message