(declare-flow-object-class element "UNREGISTERED::James Clark//Flow Object Class::element") (declare-flow-object-class document-type "UNREGISTERED::James Clark//Flow Object Class::document-type") (declare-flow-object-class empty-element "UNREGISTERED::James Clark//Flow Object Class::empty-element") (declare-flow-object-class formatting-instruction "UNREGISTERED::James Clark//Flow Object Class::formatting-instruction") (define debug (external-procedure "UNREGISTERED::James Clark//Procedure::debug")) ")) (define RED-OFF (make formatting-instruction data: "")) (define RULE (make formatting-instruction data: "
")) (define START (make formatting-instruction data: "

")) (define STOP (make formatting-instruction data: "

")) ]]> (define (make-special-para) (make sequence (make element gi: "P" (make element gi: "B" (literal (string-append (gi) ":")))) (make element gi: "BLOCKQUOTE" (process-children)))) (element DOC (sosofo-append (make document-type name: "HTML" public-id: "-//W3C//DTD HTML 3.2//EN") (make element gi: "HTML" (sosofo-append (make element gi: "HEAD" (make element gi: "TITLE" (sosofo-append (literal "Simple XML-to-HTML Conversion"))) ) ) (make element gi: "BODY" (make sequence (make element gi: "H2" (sosofo-append (literal "Table of Contents"))) (with-mode toc (process-matching-children 'section)) (process-children) ) ) ) ) ) (mode extract-title-text (element (TITLE) (process-children))) (mode toc (element section (make sequence START (literal "Section ") (literal (format-number (child-number) "1")) (literal " ... ... ... ... ... ") (with-mode extract-title-text (process-first-descendant "TITLE")) STOP ) ) ) (element (DOC TITLE) (make sequence RULE (make element gi: "H2" ) ) ) (element (SECTION TITLE) (make element gi: "H3" ) ) (element NOTE (make-special-para)) (element CAUTION (make sequence RED-ON (make-special-para) RED-OFF ) ) (element PARA (make element gi: "P" ) )