[xml] How to use xmlIOParseDTD ?
- From: Martin Quinson <Martin Quinson tuxfamily org>
- To: xml gnome org
- Subject: [xml] How to use xmlIOParseDTD ?
- Date: Mon, 21 Oct 2002 13:21:23 +0200
Sorry for this dummy question, but I fail to use the xmlIOParseDTD function.
I browse the documentation, the xmlsoft.org site and google since a few
days, and I can't find my answer.
My problem is that I would like to use a DTD from memory, and not from an
external file. Here is the code snipet:
-------------
int some_function(char *envelop,
                  /*OUT*/char **msgname,
                  char **content) {
  static xmlDtdPtr msg_dtd=NULL;
  
  /* initialize the envelop DTD if needed */
  if (!msg_dtd) {
    const char* dtd=
      "<!ELEMENT message ANY><!ATTLIST message name CDATA #REQUIRED>\n";
      
    fprintf(stderr,"XSG: Parse the DTD\n");
    msg_dtd=xmlIOParseDTD(NULL,
               xmlParserInputBufferCreateMem(dtd,sizeof(dtd),
                                             XML_CHAR_ENCODING_ASCII),
                          XML_CHAR_ENCODING_ASCII);
    if (!msg_dtd) {
      fprintf(stderr,
              "XSG: Damnit! Error while parsing message envelop DTD.\n");
      return MSG_FATAL;
    }
  }
  [...]
}
------------
The execution produce the following output:
------------
XSG: Parse the DTD
Entity: line 1: error: Content error in the external subset
<!EL
^
Entity: line 1: error: Extra content at the end of the document
<!EL
^
XSG: Damnit! Error while parsing message envelop DTD.
------------
The dtd seems valid to me, but the function don't like it...
Again, I'm sorry for such a lamer question, but I'm kinda lost here.
Thanks, Mt.
-- 
Si les grands esprits se rencontrent, les petits esprits, eux, se cognent.
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]