5. SGML, XML, DSSSL und Freunde

5.1. SGML — "Standard Generalized Markup Language"

Eine, wenn nicht die Möglichkeit, Dokumente plattform-unabhängig zu erstellen. Grundlage ist der Internationale Standard ISO 8879.

5.1.1. SGML: Einführungen und Anwendungen

5.2. Architectural Forms Processing

From: Karl Eichwalder <keichwa@gmx.net>
Subject: Architectural Forms (Re: chapters)
To: gnome-doc-list@gnome.org
Date: 13 Aug 2000 11:29:07 +0200

[…] Here's how these "mapping" magic essentially works (I'm using SYSTEM identifiers since I've problems to make it work with PUBLIC identifiers). The document (of course, the definitions can go in an _external_ DTD and you've to define the additional attributes for sect2, setc3, etc., too!):

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<?IS10744 ArcBase article>
<!NOTATION article SYSTEM "/usr/share/sgml/docbk41/docbook.dtd">
<?IS10744:arch name="article"
          dtd-system-id="/usr/share/sgml/docbk41/docbook.dtd">
<!ATTLIST #NOTATION article
  ArcDTD CDATA #FIXED "gnomedtd">
<!ENTITY gnomedtd PUBLIC "-//OASIS//DTD DocBook V4.1//EN" CDATA SGML>

<!ENTITY % local.book.attrib        "article NMTOKEN #FIXED 'article'">
<!ENTITY % local.bookinfo.attrib    "article NMTOKEN #FIXED 'articleinfo'">
<!ENTITY % local.chapter.attrib     " -- Id ID #REQUIRED --
                                     article NMTOKEN #FIXED 'sect1'">
<!ENTITY % local.chapterinfo.attrib "article NMTOKEN #FIXED 'sect1info'">
<!ENTITY % local.sect1.attrib       " -- Id ID #REQUIRED --
                                     article NMTOKEN #FIXED 'sect2'">
]>
<book>
 <bookinfo>
  <title>T</title>
 </bookinfo>
 <chapter id="c">
  <chapterinfo>
   <surname>E</surname>
  </chapterinfo>
  <title>T1</title>
  <para></para>

  <sect1 id="k1">
   <title>T11</title>
   <para>This section is okay.</para>
  </sect1>

  <sect1 id="k2">
   <title>T12</title>
   <para>Here the ID was missing ;-)</para>
  </sect1>

 </chapter>

</book>

Run the following command on it:

sx -xlower -Aarticle document.sgml | tidy -xml

<?xml version="1.0"?>
<article>
  <articleinfo>
    <title>T</title>
  </articleinfo>

  <sect1 id="c">
    <sect1info>
      <surname>E</surname>
    </sect1info>

    <title>T1</title>

    <para>
    </para>

    <sect2 id="k1">
      <title>T11</title>

      <para>This section is okay.</para>
    </sect2>

    <sect2 id="k2">
      <title>T12</title>

      <para>Here the ID was missing ;-)</para>
    </sect2>
  </sect1>
</article>

You can do much more with this technique.

From: Karl Eichwalder <keichwa@gmx.net>
Subject: Re: Architectural Forms (Re: chapters)
To: gnome-doc-list@gnome.org
Date: 15 Aug 2000 07:31:30 +0200

At comp.text.sgml Architectural Forms Processing was mentioned yesterday. If you're interested in more info please read these documents:

http://www.isogen.com/papers/archintro.html
http://www.syntext.com/topics/sgml/kimber1.html

and:

From: roconnor@student.math.uwaterloo.ca (Russell Steven Shawn O'Connor)
Subject: Adding comment attribute to HTML using Architectures
Newsgroups: comp.text.sgml
Date: 14 Aug 2000 22:15:52 GMT

Recently in www-html@w3.org (mailing list) there has been discussion on
adding a comment attribute to HTML, and how users could roll their own
HTML.  One example using XHTML and XML schema's was given.  I've written
an example using architectures. See

<http://www.student.math.uwaterloo.ca/~roconnor/archTest.html>
<http://www.student.math.uwaterloo.ca/~roconnor/archTest2.html>

And parsing by nsgmls is done at

<http://www.student.math.uwaterloo.ca/~roconnor/archTestOutput.html>

I'm not an architectures expert.  So if any of you smart people out there
want to tweak my attempt, let me know how to improve it.

5.3. DSSSL — die "Document Style, Semantics and Specification Language"

"It rimes with whistle." Auch ein internationaler Standard: ISO/IEC 10179:1996.

James Clark: http://www.jclark.com/dsssl/

Der endgültige Text des DSSSL-Standards, the SGML source for ISO/IEC 10179, DocumentStyle Semantics and Specification Language (englisch!). Hier ein zip-Archiv der HTML-Version.

Index der Mailing-Liste DSSSList bei Mulberry Technologies, Inc.; für diese Mailingliste gibt es auch eine Suchmaschine.

DSSSL Documentation Project.

5.3.1. DSSSL-Einführungen

Paul Prescod: Introduction to DSSSL (54k), keine Scheme-Kenntnisse notwendig.

5.3.2. DSSSL-Applikationen

OpenJade, der Nachfolger von James Clarks Jade von James Clark.

jadetex, TeX-Macros von Sebastian Rahtz. Zur Weiterverarbeitung des der Ausgabe des tex-Backends von Openjade geeignet.