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 |