Well, you could submit it as a patch if you're willing to fetch a tree.

On Fri, Mar 26, 2010 at 5:37 AM, J. Aparicio
<juanjo.apari...@techideas.es> wrote:
>
>
> bimargulies wrote:
>>
>> Looks like the doctype adds one more event/node to the picture, and
>> something trips over it.
>>
>> On Thu, Mar 25, 2010 at 2:46 PM, Daniel Kulp <dk...@apache.org> wrote:
>>> On Thursday 25 March 2010 10:02:07 am J. Aparicio wrote:
>>>> OK, found out what the problem was.
>>>>
>>>> The xsd in question includes a DOCTYPE declaration. Of all the involved
>>>> wsdl and xsd documents in the app, it's the only one with a DOCTYPE
>>>> declaration. Taking it out of the document allowed CXF to return the
>>>> xsd.
>>>
>>> Well, that's interesting.   Unexpected, but interesting.
>>>
>>>
>>>> Now, my question (which doesn't belong to cxf anymore) is whether that
>>>> DOCTYPE declaration should be there at all, or if the standard xsd was
>>>> revised at some point and the DOCTYPE declaration taken out. The latest
>>>> version I've been able to find lies at
>>>> http://www.w3.org/2005/08/addressing/ws-addr.xsd, and DOESN'T have a
>>>> DOCTYPE declaration.
>>>>
>>>> On the CXF-related side, is it legal for StaxUtils to choke on such a
>>>> node
>>>> type? Can't it just ignore it?
>>>
>>> I would have also expected it to just ignore it.  Not sure why it
>>> wouldn't be.
>>> Is there any way you could create a small testcase that shows it throwing
>>> the
>>> exception?    That would make it easier to debug it.   I'm really not
>>> sure how
>>> a DOCTYPE would cause this.   Very bizzarre.
>>>
>>
>
> Actually class org.apache.cxf.staxutils.StaxUtils, function "public static
> void writeNode(Node n, XMLStreamWriter writer, boolean repairing) throws
> XMLStreamException" contains a big "switch(n.getNodeType()) {",
> Node.DOCUMENT_TYPE_NODE is processed by the default case, which throws an
> IllegalStateException.
>
> So taking away the DOCTYPE declaration (definition?) from the xsd document
> avoids StaxUtils blind spot. IIRC, xmlschemas are favored over dtd, but dtds
> are still legal, so the longer term solution would be to include an
> additional case to that function in StaxUtils, something like:
>
> <code>
>        case Node.DOCUMENT_TYPE_NODE:
>                writer.writeDTD(((DocumentType)n).getTextContent());
>                break;
> </code>
>
> Just a suggestion, I've not even checked that the above compiles.
>
>
> --
> View this message in context: 
> http://old.nabble.com/Relative-paths-in-xsd%3Aimport-tp28018462p28040040.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Reply via email to