Insertion of document goes in non XML

Hello,

When I tried to insert a document in webdav, it goes in the non_XML schema of my collection.

When I remove the doctype processing instruction of my document then it goes in the correct location.

With both document (with and without doctype), I can instert in tamino with the interactive interface and it goes in the correct location.

Here my doctype : <!DOCTYPE ReusableComponent PUBLIC "JohnsonAndJohnson//DTD ReusableComponent V1//EN"
“ReusableComponent.dtd”>

Any idea why?

Hi Marc,

My suspicions are as follows: the document is an XML document so the document is parsed internally by Webdav to ensure it is wellformed xml. Since it does not have access to the DTD (which is outside of webdav), the parsing fails. So the document is inserted as non xml.

If you change the DOCTYPE declaration to:
<!DOCTYPE ReusableComponent PUBLIC "JohnsonAndJohnson//DTD ReusableComponent V1//EN"
http://localhost/ReusableComponent.dtd”>

and copy the dtd into the root directory of your webserver, the instance is then inserted correctly as a XML document.

Hope this helps.

Stuart Fyffe-Collins
Software AG (UK) Ltd.

Ok, but is there a way avoiding hardcoding the URL of the DTD in the document, and specifying a catalog to webdav for the dtd resolution.

I think this is the idea of public doctype, otherwise we could use a system doctype

Regards

Hi Marc,

I kind of get the feeling that public identifiers should have been left in the SGML world and that system identifiers should be the only mechanism for specifying the location of an external DTD. Anyway I don’t think you can specify a catalog to webdav. Please note that Tamino uses XML Schema for validation of instances not DTD’s.

Hope this helps.

Stuart Fyffe-Collins
Software AG (UK) Ltd.

OK, if we use system id like .

Where do I have to put the dtd (in webdav itself, or in a folder in Tomcate of wedav server).
Or do I have to specify an absolute URL to refer to the dtd?

Thanks

Hi Marc, I would suggest an absolute URL. In my test I have IIS and this is where I placed the DTD; not under the tomcat/webdav server.

Hope this helps.

Stuart Fyffe-Collins
Software AG (UK) Ltd.