|
Subject: Re: sgml-parse working example required From: James Clark <jjc@xxxxxxxxxx> Date: Thu, 29 May 1997 21:03:52 +0700 |
At 17:54 29/05/97 MSD, Tsyshevsky Vladimir wrote:
>Hi,
>
>jade_08 implements new primitive
>
>(sgml-parse string #!key active: parent:)
>
>which is described in standard as follows:
>
> Returns a node-list containing a single node that is the root of a grove
built by
> parsing an SGML document or subdocument using the SGML property set.
string is
> the system identifier of the SGML document entity or SGML subdocument entity.
> active: is a list of strings specifying the names of the active DTD or
LPDs. At most
> one DTD shall be active...
>
>a) It looks like the 'string' argument is used as filename, but not as
>entity name;
It's a system identifier as the standard requires.
>b) I failed to parse the subdocument with it's own dtd, it looks like
>the parent documents's dtd always used
It works for me.
Here's an example:
<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN">
(root (make simple-page-sequence))
(element p (make paragraph))
(element para (make paragraph))
(element include
(process-node-list
(document-element
(sgml-parse
(entity-generated-system-id
(attribute-string "entity"))))))
(define read-entity
(external-procedure "UNREGISTERED::James Clark//Procedure::read-entity"))
(element example
(make paragraph
font-family-name: "Courier"
input-whitespace-treatment: 'preserve
lines: 'asis
(literal
(read-entity
(entity-generated-system-id
(attribute-string "entity"))))))
(define (document-element #!optional (node (current-node)))
(node-property 'document-element node default: (empty-node-list)))
Here's a document entity you can try it with:
<!doctype doc system "include.dtd" [
<!entity e system "include2.sgm" subdoc>
]>
<p>
Paragraph the first.
<include entity=e>
<p>
Paragraph the second.
<include entity=e>
<example entity=e>
include.dtd:
<!element doc o o (p|include|example)*>
<!element p - o (#pcdata)>
<!element include - o empty>
<!element example - o empty>
<!attlist (example|include) entity entity #required>
<!notation sgml public "ISO 8879:1986//NOTATION SGML//EN">
include2.sgm:
<!doctype doc [
<!element doc o o (para+)>
<!element para - o (#pcdata)>
]>
<para>
Included paragraph the first.
<para>
Included paragraph the second.
DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| sgml-parse working example required, Tsyshevsky Vladimir | Thread | Re: sgml-parse working example requ, W. Eliot Kimber |
| sgml-parse working example required, Tsyshevsky Vladimir | Date | Character Reference Problem, Kevin Desmarais |
| Month |