|
Subject: SUBDOC From: Jose Carlos Ramalho <jcr@xxxxxxxxxxxx> Date: Wed, 14 Oct 1998 16:15:03 +0000 (WET) |
Hi, I battled your fight sometime ago.
I have an example that works. In the next month I hope to have some
graduation students working with me in "Website automatic generation from
SGML specs". In this context SUBDOC is necessary to face heterogeneous
websites.
As attachment I am sending you 3 files:
- a dtd
- a sgml file
- a omnimark script that processes those files and generates a
tree of HTML pages (you can use the omnimark free version to run it - omle)
I also have produced a document about how to use and implement subdoc,
but it is written in portuguese (if you want it I can send it).
BTW there are two ways to use SUBDOC in sgml files. One is the one of my
example, empty elements; the other is through the use of #CONREF attributes.
Elliot Kimber has something written about available on his homepage "Why
I demand SUBDOC ...".
I have used Omnimark because of the "do sgml-parse" feature which enables
"subparsing". In Perl I would have to implement this and I did not have
the time.
I hope this helps
Feel free to ask more questions
jcr
------------------------------------------------------------
Jose Carlos Ramalho windsurfer / diver / engineer
orienteer
Computer Science Dep.
University of Minho EMAIL: jcr@xxxxxxxxxxxx
4700 Braga - PORTUGAL URL: http://www.di.uminho.pt/~jcr
Tel +351 53 604461/70 Fax +351 53 604471
------------------------------------------------------------
;
; Script Omnimark para processar uma árvore de DTDs
; - vai ser usado no repositório GEIRA
; Versão 0.1 - jcr - 27.01.98
;
down-translate
document-start
do sgml-parse document
creating dtds key "arq"
scan file "arqueo.dtd"
suppress
done
next group is Principal
ELEMENT #IMPLIED
SUPPRESS
; =========================================================
group Principal
; =========================================================
ELEMENT geira
OUTPUT "<H1>Projecto GEiRA</H1><HR>%n%c<HR>%nVolte sempre ..."
ELEMENT entrada
OUTPUT "<LI>%c"
ELEMENT logo
OUTPUT '<IMG SRC="%v(path)">'
SUPPRESS
ELEMENT nome
DO WHEN (ATTRIBUTE url IS SPECIFIED)
OUTPUT "<A HREF=%v(url)>%c</A>%n"
ELSE
OUTPUT "%c%n"
DONE
ELEMENT arqsit
DO WHEN (ATTRIBUTE microdoc IS SPECIFIED)
DO SGML-PARSE INSTANCE
WITH DOCUMENT-ELEMENT "arqueo"
WITH DTDS KEY "arq"
SCAN FILE "%ev(microdoc)"
USING GROUP Arqueositios DO
OUTPUT "%c"
DONE
DONE
ELSE
OUTPUT "ERRO: o subdocumento nao foi especificado!%n"
DONE
SUPPRESS
ELEMENT sub
OUTPUT "<UL>%n%c</UL>%n"
; =========================================================
group Arqueositios
; =========================================================
element ARQUEO
output "<LI>Arqueositios:%n<UL>%n%c</UL>%n"
element identi
output "<LI> %c%n"
element liga
output "%c "
<!DOCTYPE geira SYSTEM "geira.dtd" [ <!ENTITY arq SYSTEM "arqueo.sgm" SUBDOC> ]> <geira> <entrada> <nome tipo="arquivo" url="http://www.geira.pt">geira</nome> <sub> <entrada> <nome tipo="unidade">Novas</nome> </entrada> <!-- =================CULTURA=================== --> <entrada> <nome tipo="unidade">Cultura</nome> <sub> <!-- =================MUSEUS=================== --> <entrada> <nome tipo="unidade">Museus</nome> <sub> <entrada> <nome tipo="entidade" url="http://www.geira.pt/mdds/"> Museu D. Diogo de Sousa</nome> </entrada> <entrada> <nome tipo="entidade" url="http://www.utad.geira.pt/museus/atrio/index.asp?id=7"> Museu da Região Flaviense</nome> </entrada> <entrada> <nome tipo="entidade" url="http://www.utad.geira.pt/museus/pacosdaseda"> Projecto Paços da Seda</nome> </entrada> <entrada> <nome tipo="entidade" url="http://www.utad.geira.pt/museus/abadebacal"> Museu do Abade de Baçal</nome> </entrada> <entrada> <nome tipo="entidade" url="http://www.utad.geira.pt/ferromoncorvo"> Museu do Ferro e da Região de Moncorvo</nome> </entrada> <entrada> <nome tipo="entidade" url="http://www.utad.geira.pt/museus/atrio/index.asp?id=5"> Museu Municipal Armindo Teixeira Lopes</nome> </entrada> </sub> </entrada> <!-- =================BIBLIOTECAS=================== --> <entrada> <nome tipo="unidade">Bibliotecas</nome> <sub> <entrada> <nome tipo="entidade" url="http://cde.ci.uminho.pt"> Centro de Documentação Europeia da Universidade do Minho</nome> </entrada> </sub> </entrada> <!-- =================ARQUEOLOGIA=================== --> <entrada> <nome tipo="unidade">Arqueologia</nome> <sub> <arqsit microdoc="arq"> <entrada> <nome tipo="entidade" url="http://www.utad.geira.pt/panoias"> Sítio Arqueológico de Panoias</nome> </entrada> <entrada> <nome tipo="entidade" url="http://www.utad.geira.pt/museus/atrio/index.asp?id=6"> Sala-Museu Municipal de Arqueologia</nome> </entrada> </sub> </entrada> <!-- =================ARQUIVOS====================== --> <entrada> <nome tipo="unidade">Arquivos</nome> <sub> <entrada> <nome tipo="entidade" url="http://www.adb.pt"> Arquivo Distrital de Braga</nome> </entrada> </sub> </entrada> </sub> </entrada> <!-- ============================================== --> <!-- ================NATURA======================== --> <entrada> <nome tipo="unidade">Natura</nome> <sub> <!-- ================AREAS NATURAIS================ --> <entrada> <nome tipo="unidade">Áreas Naturais</nome> <sub> <entrada> <nome tipo="entidade" url="http://www.utad.geira.pt/pnal"> Parque Natural do Alvão</nome> </entrada> <entrada> <nome tipo="entidade" url="http://www.geira.pt/pnpg"> Parque Nacional da Peneda-Gerês</nome> </entrada> <entrada> <nome tipo="entidade" url="http://www.geira.pt/aple"> Área protegida do litoral de Esposende</nome> </entrada> </sub> </entrada> <!-- ================LAZER========================= --> <entrada> <nome tipo="unidade">Lazer</nome> <sub> <entrada> <nome tipo="unidade" url="http://www.di.uminho.pt/~jcr/o.html">Orientação</nome> </entrada> <entrada> <nome tipo="unidade" url ="http://www.utad.geira.pt/pnal/visitas/subsite/index.asp?id=1"> Trilhos no Alvão</nome> </entrada> </sub> </entrada> <!-- ================TURISMO DE HABITAÇÃO========== --> <entrada> <nome tipo="unidade">Turismo de Habitação</nome> <sub> <entrada> <nome tipo="unidade" url="http://www.utad.pt/Extensao/Quintas_do_Douro"> Quintas do Douro</nome> </entrada> <entrada> <nome tipo="unidade" url="http://www.sidra.pt/turihab/index.html"> Solares de Portugal</nome> </entrada> </sub> </entrada> </sub> </entrada> <!-- ============================================== --> <!-- ================CIENCIA======================= --> <entrada> <nome tipo="unidade">Ciência e Tecnologia</nome> </entrada> <!-- ============================================== --> <!-- ================ALFARRABIO==================== --> <entrada> <nome tipo="arquivo" url="http://alfarrabio.um.geira.pt">Alfarrábio</nome> </entrada> </sub> </entrada> </geira>
<!-- GEIRA.DTD Versao 0.1 jcr&jj
a ser utilizado numa especificacao top-down do Geira -->
<!ENTITY % isolat1 SYSTEM "ISOlat1.sgm">
%isolat1;
<!ELEMENT geira - - (entrada+)>
<!ELEMENT entrada - - (logo?,nome, sub?)>
<!ELEMENT sub - - ((entrada|arqsit)+)>
<!ELEMENT nome - - (#PCDATA)>
<!ATTLIST nome tipo NMTOKEN #IMPLIED
url CDATA #IMPLIED>
<!ELEMENT arqsit - - EMPTY>
<!ATTLIST arqsit
microdoc ENTITY #REQUIRED>
<!ELEMENT logo - - EMPTY>
<!ATTLIST logo path CDATA #REQUIRED>
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: Using SUBDOCs, G. Ken Holman | Thread | Lost Ability to Use Underscore (_), Chuck Darney |
| Using SUBDOCs, Alexander Taranov | Date | RE: Using SUBDOCs, Pursel, Frank |
| Month |