cvs commit: ALFS/docs/syntax_doc/alfs_dtd alfs_dtd.ent alfs_dtd.xml elem_alfs.xml elem_archive.xml

Kevin P. Fleming kpfleming at
Tue Sep 30 18:43:32 PDT 2003

James Robertson wrote:

> Duh!  I knew that - brain fart.  Why don't we keep the DTD in CVS?  It 
> is plain text right?  Does the DTD explain what exactly each element 
> does (in non-english)?

It should be in CVS, yes it is plain text. It also should not be 
nALFS-specific, it's for all of ALFS as best I can tell. However, I 
don't know if any of the other ALFS tools support the syntax additions 
that have been added since version 2.0, so whether this is an ALFS DTD 
or an nALFS DTD is still a question for others to decide. The DTD does 
not explain what anything does, it only describes the available 
elements, their attributes and sub-elements and the order things can 

> I am confused on some stuff in the syntax_doc.  Mostly it is what is 
> displayed in the synopsis section at the top.

That is information directly from the DTD.

> I saw your other post.  That is fine if your changes do not effect the 
> syntax_doc.  I understand now.

They might, I'll post the diff below with explanations and you can 
decide what to include in the syntax_doc. My changes bring the DTD up 
to what nALFS-1.1.8 supports, although the DTD is more strict in some 
areas than nALFS is. The changes below (in order, except for 
whitespace changes) are:

- redefine the ops entity for easier use below
- allow multiple ops elements to appear inside <alfs> (instead of just 
- support a base attribute on <alfs>
- support <prefix> inside <configure>
- allow multiple ops elements to appear inside <else> (instead of just 
- support <prefix> inside <make>
- add <prefix> element
- allow multiple <alfs> and ops elements inside <stage>
- change order of <stageinfo> elements (this one is local, I didn't 
want to change all my profiles but could do so)
- allow multiple ops elements to appear inside <then> (instead of just 

--- nalfs.dtd.orig	Tue Sep 30 18:28:28 2003
+++ nalfs.dtd	Fri Sep  5 11:22:45 2003
@@ -20,19 +20,19 @@
  <!ENTITY apos   "'">
  <!ENTITY quot   """>

-<!ENTITY % ops 
+<!ENTITY % ops "configure | copy | download | execute | if | link | 
make | mkdir | move | ownership | package | patch | permissions | 
remove | search_replace | stage | textdump | unpack">

-<!ELEMENT alfs           %ops;>
+<!ELEMENT alfs           ((%ops;)*)>
  <!ATTLIST alfs
-          version        CDATA   #FIXED "3.1">
+          base           CDATA #IMPLIED
+          version        CDATA #FIXED "3.1">

  <!ELEMENT archive        (#PCDATA)>

  <!ELEMENT base           (#PCDATA)>

-<!ELEMENT configure      (param*)>
+<!ELEMENT configure      ((param | prefix)*)>
  <!ATTLIST configure
            base           CDATA #IMPLIED
            command        CDATA #IMPLIED>
@@ -43,7 +43,7 @@
  <!ATTLIST copy
            base           CDATA #IMPLIED>

-<!ELEMENT description    (para|list)*>
+<!ELEMENT description    (para | list)*>

  <!ELEMENT destination    (#PCDATA)>

@@ -51,9 +51,9 @@
  <!ATTLIST digest
            type           CDATA     "md5">

-<!ELEMENT download       (file,url*,destination,digest?)>
+<!ELEMENT download       (file, url*, destination, digest?)>

-<!ELEMENT else           (%ops;)>
+<!ELEMENT else           ((%ops;)*)>

  <!ELEMENT execute        (param*)>
  <!ATTLIST execute
@@ -84,7 +84,7 @@
  <!ATTLIST list
            type           (bullet|number) "bullet">

-<!ELEMENT make           (param*)>
+<!ELEMENT make           ((param | prefix)*)>
  <!ATTLIST make
            base           CDATA #IMPLIED>

@@ -106,12 +106,12 @@
            user           CDATA #IMPLIED
  	  group          CDATA #IMPLIED>

-<!ELEMENT package        (packageinfo?,stage+)>
+<!ELEMENT package        (packageinfo?, stage+)>
  <!ATTLIST package
            name           CDATA #REQUIRED
            version        CDATA #REQUIRED>

-<!ELEMENT packageinfo    (description?,requires*,utilizes*)>
+<!ELEMENT packageinfo    (description?, requires*, utilizes*)>

  <!ELEMENT para           (#PCDATA)>

@@ -126,13 +126,15 @@
            base           CDATA #IMPLIED
            mode           CDATA #REQUIRED>

+<!ELEMENT prefix         (#PCDATA)>
  <!ELEMENT reference      (#PCDATA)>

  <!ELEMENT remove         (#PCDATA)>

  <!ELEMENT replace        (#PCDATA)>

-<!ELEMENT requires       (name,version*)>
+<!ELEMENT requires       (name, version*)>

  <!ELEMENT root           (#PCDATA)>

@@ -140,13 +142,13 @@
  <!ATTLIST search_replace
            base           CDATA #IMPLIED>

-<!ELEMENT stage          (stageinfo?,%ops;)>
+<!ELEMENT stage          (stageinfo?, (alfs | %ops;)*)>
  <!ATTLIST stage
            name           CDATA #IMPLIED>

  <!ELEMENT source         (#PCDATA)>

-<!ELEMENT stageinfo      (root?,environment?,user?,base?)>
+<!ELEMENT stageinfo      (root?, user?, environment?, base?)>

  <!ELEMENT target         (#PCDATA)>

@@ -155,15 +157,15 @@
            base           CDATA #IMPLIED
  	  mode           CDATA #IMPLIED>

-<!ELEMENT then           (%ops;)>
+<!ELEMENT then           ((%ops;)*)>

-<!ELEMENT unpack         (digest?, reference?,archive,destination)>
+<!ELEMENT unpack         (digest?, reference?, archive, destination)>

  <!ELEMENT url            (#PCDATA)>

  <!ELEMENT user           (#PCDATA)>

-<!ELEMENT utilizes       (name,version*)>
+<!ELEMENT utilizes       (name, version*)>

  <!ELEMENT variable       (#PCDATA)>
  <!ATTLIST variable

More information about the alfs-log mailing list