Re: [xml] Inserting a DTD when creating a XML file
- From: "Greg Sjaardema" <gdsjaar sandia gov>
- To: "Yvan Paitel" <ypaitel sofamordanek com>
- Cc: "'veillard redhat com'" <veillard redhat com>, xml gnome org
- Subject: Re: [xml] Inserting a DTD when creating a XML file
- Date: Fri, 25 Jan 2002 08:27:32 -0700
Yvan Paitel wrote:
If I save the document (using xmlSaveFile or xmlSaveFileFormat), the DTD is
neither included nor referenced in the xml file. Any idea?
Thanks for your help,
Yvan
I do the following (C++):
dtd = xmlParseDTD(NULL, dtd_path);
if (dtd->name != NULL)
xmlFree((char*)dtd->name);
dtd->name = xmlStrdup(root_name);
doc->intSubset = dtd;
// Get rid of system id -- internal references only
if (dtd->SystemID != NULL)
xmlFree((char*)dtd->SystemID);
dtd->SystemID = NULL;
dtd->doc = doc;
dtd->parent = doc;
doc->children = (xmlNodePtr)dtd;
// Define and insert the root of the output document
root = dtd->next = xmlNewDocNode(doc, NULL, root_name, NULL);
When the file is saved, it has the DTD embedded at the beginning of the file.
--Greg
-----Original Message-----
From: Daniel Veillard [mailto:veillard redhat com]
Sent: Thursday, January 24, 2002 7:36 AM
To: darrell
Cc: ypaitel sofamordanek com; xml gnome org
Subject: Re: [xml] Inserting a DTD when creating a XML file
On Tue, Jan 22, 2002 at 09:17:44PM -0700, darrell wrote:
i am unsure if anyone is alowed to reply,
Of course !
but this is an exerpt from the
faq, perhaps it is not what you are looking for?
It is also possible to simply add a Dtd to an existing document:
xmlDocPtr doc; /* your existing document */
xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the
DTD */
dtd->name = xmlStrDup((xmlChar*)"root_name"); /* use the given
root */
doc->intSubset = dtd;
It can be a good idea to link the DTD as the first node in the doc
children list:
if (doc->children == NULL)
xmlAddChild((xmlNodePtr) doc, (xmlNodePtr) dtd);
else
xmlAddPrevSibling(doc->children, (xmlNodePtr) dtd);
Daniel
--
Daniel Veillard | Red Hat Network https://rhn.redhat.com/
veillard redhat com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
_______________________________________________
xml mailing list, project page http://xmlsoft.org/
xml gnome org
http://mail.gnome.org/mailman/listinfo/xml
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]