Subject: Re: Accessing the Document Prolog with Jade From: Tony Graham <tgraham@xxxxxxxxxxxxxxxx> Date: Thu, 26 Nov 1998 13:01:51 -0500 (EST) |
At 26 Nov 1998 16:47 +0100, SGML@xxxxxxxxxxxxx wrote: > I´m trying to do an SGML transformation using Jade. > At this stage, I´d be happy to have an identity transformation, but I dont´t > know how to copy the document prolog, in particular external entity > declarations like > <!ENTITY internal SYSTEM "w:\daten\sgml\graphic\aom\internal.tif" NDATA > ccitt4>. > The don´t appear in the oputput. This is something that I use, which is based largely on code that I received from Dan Speck. ------------------------------------------------------------ (define (copy-attributes #!optional (nd (current-node))) (let loop ((atts (named-node-list-names (attributes nd)))) (if (null? atts) '() (let* ((name (car atts)) (value (attribute-string name nd))) (if value (cons (list name value) (loop (cdr atts))) (loop (cdr atts))))))) (define (grove-root #!optional (node (current-node))) (node-property 'grove-root node)) (define (declare-external-entities #!optional (the-root (grove-root (current-node)))) (let loop ((entity-list (named-node-list-names (node-property 'entities the-root)))) (if (null? entity-list) "" (let ((ename (car entity-list))) (if (not (entity-text ename the-root)) (string-append "<!ENTITY " ename " " (cond ((entity-public-id ename the-root) (string-append "PUBLIC \"" (entity-public-id ename the-root) "\"" )) ((entity-system-id ename the-root) (string-append "SYSTEM \"" (entity-system-id ename the-root) "\"" )) (else (error (string-append "unknown type entity: " ename))) ) (if (entity-notation ename the-root) (string-append " NDATA " (entity-notation ename the-root)) "") ">&#RE;" (loop (cdr entity-list))) (loop (cdr entity-list))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Root element (element ROOTELEMENT (make sequence (make formatting-instruction data: (string-append "<!DOCTYPE " "rootelement" " PUBLIC \"" "Put your public identifier here" "\" [&#RE;")) (make formatting-instruction data: (declare-external-entities)) (make formatting-instruction data: "]>&#RE;") (make element attributes: (copy-attributes)))) ------------------------------------------------------------ Regards, Tony Graham ====================================================================== Tony Graham mailto:tgraham@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9632 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ====================================================================== DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Accessing the Document Prolog with , SGML | Thread | Help - how do I pass tags through J, Mark Burton |
Accessing the Document Prolog with , SGML | Date | Help - how do I pass tags through J, Mark Burton |
Month |