[jbosstools-dev] [wtp-dev] Question on XML Validation and oracle xsds
Max Rydahl Andersen
manderse at redhat.com
Thu Mar 3 18:26:36 EST 2016
On 2 Mar 2016, at 3:13, Rob Stryker wrote:
> There have been three responses on wtp-dev about my xml schema
> question. They seem to indicate the problem is with the xml spec in
> general and the different behaviors in various libraries like xerces.
cool - getting the conversation started is great!
> Either way, this thread seems to indicate Jesper and Keith Chong are
> the guys to ping when we have further questions.
Did you try what Keith suggested to see if that gave a workaround ?
/max
> - Rob
>
>
> -------- Forwarded Message --------
> Subject: Re: [wtp-dev] Question on XML Validation and oracle xsds
> Date: Thu, 25 Feb 2016 23:43:07 +0100
> From: Jesper Steen Møller <jesper at selskabet.org>
> Reply-To: General discussion of project-wide or architectural issues.
> <wtp-dev at eclipse.org>
> To: General discussion of project-wide or architectural issues.
> <wtp-dev at eclipse.org>
>
>
>
> Hi Keith and Rob
> (You probably know all this already, but Iâll just add what I
> know)
>
> I touched some of the validator code a few years back: The number of
> URI resolver interfaces is horrible - one from Platform, one from
> Xerces and one from WTP as I recall), each introducing a slight
> impedance mismatch.
>
> Really, the XML Schema spec is at fault, by being so vague on the
> semantics of namespaces and schema locations, so Xerces can get away
> with their import policies (first import per namespace wins). So, the
> order of imports matter, and this affects the effective scope of each
> import:
>
> Imagine this scenario where you have to âend-userâ schemas
> A.xsd and B.xsd. A relies on namespace C and D, B only on C.
> A.xsd imports A_C.xsd, which in turn also imports A_D.xsd (say, they
> were meant to be used together), and all is great, you can validate
> A.xsd by itself â no errors.
> B.xsd import a different file B_C.xsd, which doesnât contain an
> import for namespace D, but and doesnât need to. B.xsd also
> validates by itself.
> Now we make E.xsd which import A.xsd and B.xsd and uses namespaces
> A,B,C, and D. This should be just fine, and E.xsd can validate on its
> own. The import of B_C.xsd from B.xsd is ignored.
> Now flip the imports of A.xsd and B.xsd. This will cause the namespace
> for C to be imported from B_C.xsd, and E.xsd will no longer validate,
> since it never sees the import of A_D.xsd from A_C.xsd. Wonderful,
> isnât it?
> Now, some short-sighted people even practice splitting namespace
> contents up into separate files, for greater
> âcomposabilityâ, but the major stacks donât support
> that.
>
> In Eclipse, the XML Catalog support was supposed to be able to
> alleviate this, by allowing the end users manage the schemas
> themselves (Iâd rather not have my IDE be dependent on some
> external server, even if we cache the result). Also, there is an
> extension point available for providing schemas (based on namespace OR
> schema location IIRC) along with plug-ins.
>
> We might be able to improve the error handling and logging side of
> things, but only by tying deeper into the Xerces code.
>
> -Jesper
>
>> On 25. feb. 2016, at 19.01, Keith Chong <kchong at ca.ibm.com
>> <mailto:kchong at ca.ibm.com>> wrote:
>>
>> Hi Rob
>>
>> The XML Schema validator is based on the Xerces validator (parser),
>> so I had a discussion with one of the developers. I'll try to answer
>> your questions:
>>
>> 1) The validator resolves components via imports so if the import is
>> missing, the schema is invalid. See:
>> https://www.w3.org/TR/xmlschema-1/#src-resolve
>>
>> 2) This is a good question. I suspect that this client schema on its
>> own is 'invalid' and is never intended to be used that way. (There
>> are no global elements too so you can't create an instance document
>> from it). The EE 5 schema includes this schema, so it is valid as
>> part of 'the whole'. eg. If you remove the include directive from the
>> EE5 schema, then the EE5 schema is invalid.
>>
>> 3,4,5) are somewhat related. I'm looking into this.
>>
>> Regards,
>> Keith Chong
>> WTP Web Services
>>
>>
>> <graycol.gif>Rob Stryker ---02/16/2016 12:58:33 PM---Hi All: So after
>> running into validation issues for our users' xml files using
>>
>> From: Rob Stryker <rob.stryker at redhat.com
>> <mailto:rob.stryker at redhat.com>>
>> To: "General discussion of project-wide or architectural issues."
>> <wtp-dev at eclipse.org <mailto:wtp-dev at eclipse.org>>
>> Date: 02/16/2016 12:58 PM
>> Subject: [wtp-dev] Question on XML Validation and oracle xsds
>> Sent by: wtp-dev-bounces at eclipse.org
>> <mailto:wtp-dev-bounces at eclipse.org>
>>
>> ------------------------------------------------------------------------
>>
>>
>>
>> Hi All:
>>
>> So after running into validation issues for our users' xml files
>> using
>> our schema for week after week, I finally decided to dig in a little
>> and
>> see how the JEE distribution handles validation of schema without so
>> many upstream dependencies. It's clear that if a parent or referenced
>> schema is invalid, the user will experience obscure validation errors
>> when developing their own webapps etc.
>>
>> With that in mind I opened
>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=487851
>>
>> The usecase is that I simply took oracle's
>> javaee_web_services_client_1_2.xsd from
>> http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/javaee_web_services_client_1_2.xsd
>> and tried to put it in a dynamic web project and let the validator
>> work
>> its magic.
>>
>> I wouldn't be posting here if it succeeded ;)
>>
>> The questions are basically:
>>
>> 1) Why are oracle's xsd's failing to validate? Are they really all
>> invalid?
>>
>> 2) Why has nobody in the world asked Oracle to fix them?
>>
>> 3) How do we/you, as consumers / extenders of wtp, prevent errors
>> in
>> oracle's (or other upstream) xsd's from cascading down to our
>> respective
>> jee / appserver-specific schema when our schema import, extend, or
>> reference upstream failing xsds?
>>
>> 4) Is this an error in source-editing plugins for not mapping
>> directly to the most commonly used jee namespaces? Would that even
>> fix
>> the issue? (It didn't when I tried it but maybe I was doing it
>> wrong).
>>
>> 5) If oracle won't fix their incomplete xsd's, is it reasonable
>> for
>> source-editing to do it, to make sure each and every one validate
>> correctly, and that, by extension, all other schema that reference,
>> import, or otherwise make use of oracles' schema won't be hit by a
>> series of cascading validation errors?
>>
>> I suppose it's possible our product is simply "doing it wrong", but
>> the
>> fact that simply placing an official javaee oracle xsd into a clean
>> JEE
>> Mars eclipse environment fails validation is indicative to me that
>> something bigger is going on here.
>>
>> - Rob Stryker
>> JBoss Tools And Other Cool Stuff
>> _______________________________________________
>> wtp-dev mailing list
>> wtp-dev at eclipse.org <mailto:wtp-dev at eclipse.org>
>> To change your delivery options, retrieve your password, or
>> unsubscribe from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/wtp-dev
>>
>>
>>
>> _______________________________________________
>> wtp-dev mailing list
>> wtp-dev at eclipse.org <mailto:wtp-dev at eclipse.org>
>> To change your delivery options, retrieve your password, or
>> unsubscribe from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/wtp-dev
>
>
>
> _______________________________________________
> jbosstools-dev mailing list
> jbosstools-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
/max
http://about.me/maxandersen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jbosstools-dev/attachments/20160304/acfd2867/attachment.html
More information about the jbosstools-dev
mailing list