Subject: Re: SGML transformation? From: "Mitch C. Amiano" <amiamc@xxxxxxxxxxxxxxx> Date: Mon, 18 Jan 1999 14:20:24 -0500 |
Use the formatting-instruction procedure. This is a Jade extension. Start by figuring out what SGML elements will trigger which SQL statements. Then, match the elements using an element rule, and make a formatting-instruction to output the SQL. I'd typically use a (let) expression to put together the information for the transaction before making the formatting-instruction. Here's a modified snippet of code from a Jade style sheet. It should give you some ideas. (%NEWLINE%) and (FORMAT-ARGLIST) are simple functions I wrote to make dealing with source-code output a bit easier. It converts some SGML which looks vaguely like the following into a snippet of JavaScript code. <product title="myprod"><description>This is my product</description></product> (declare-flow-object-class formatting-instruction "UNREGISTERED::James Clark//Flow Object Class::formatting-instruction") ; make a product object (element (PRODUCT) (let ( (title (attribute-string "TITLE" (current-node))) (desc (data (node-list-first (select-elements (children (current-node)) "DESCRIPTION")))) (myidentifier "myproductid") ) (make formatting-instruction data: (string-append (%NEWLINE%) "var someproduct = new product(" (FORMAT-ARGLIST (list title desc)) ", " myidentifier ");" (%NEWLINE%) ) ) ) ) ; ; Some syntactic sweeteners ; (define (%NEWLINE%) (string #\&#RE)) ;; insert a new line into output ;; put quotations around a string while escaping embedded quotes with backslash (define (ENQUOTE v) (string-append (string #\quotation-mark) (string-replace v (string #\quotation-mark) (string-append (string #\reverse-solidus) (string #\quotation-mark))) (string #\quotation-mark) ) ) ; format a list of comma-separated literal arguments (e.g. JavaScript/C/C++/Java style argument lists) ; quotes are placed around each the arguments, and embedded quotes are escaped with a backslash (define (FORMAT-ARGLIST l) (let loop ( (t l) (str "") ) (if (null? t) str (loop (cdr t) (string-append str (ENQUOTE (car t)) (if (null? (cdr t)) "" ", ")) ) ) ) ) Grzegorz Staniak wrote: > > Hello, > > I'd like to request your advice: I've got data in SGML (a rather > simple DTD) that I need to edit in a specialised editor, then > export to SGML again, and then feed it to an SQL database. I > want to spare myself some work and generate SQL from the > SGML data using Jade. Is it feasible? And, more importantly, > how would you start? I've never got past the tutorial example > stage as far as DSSSL and Jade are concerned, but the DTD > is really simple, and I'm not afraid to laern something new. > Could anyone kick me in the right direction, like for example by > telling me what kind of flow object class to use? "Sequence", I > guess? And is everything I need implemented in Jade? > > TIA, > > -- > Grzegorz Staniak > <gstaniak@xxxxxxxxxxxxxxxxxxxx> > > DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
SGML transformation?, Grzegorz Staniak | Thread | Re: SGML transformation?, Grzegorz Staniak |
SGML transformation?, Grzegorz Staniak | Date | RE: Jadetex installation problems.., Pawson, David |
Month |