Fred L. Drake Fred L. Drake, Jr." <fdrake@acm.org
Tue, 15 Sep 1998 09:28:40 -0400 (EDT)

Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit

  I started working on Grail support for XBEL last night, and would
like to suggest a small change to the DTD.
  There doesn't appear any reason to make the info element or its
children required, so I suggest all three be made optional.  The
machine name, in particular, does not appear to be very useful.  I can 
also envision shared-bookmarks applications where the owner may vary
from folder to folder, so I'd also allow info within each folder.
Allowing it in the folder makes the outermost info superfluous; an
info within the outermost folder would work just fine.  (I'll leave
the folder inside the xbel element, since there may be good reason for 
adding things outside the folder in some applications.)  I've attached
the modified DTD below.


Fred L. Drake, Jr.	     <fdrake@acm.org>
Corporation for National Research Initiatives
1895 Preston White Dr.	    Reston, VA  20191

Content-Type: text/xml
Content-Description: Revised XBEL DTD.
Content-Disposition: inline;
Content-Transfer-Encoding: 7bit

<!ELEMENT xbel     (folder)>
<!ATTLIST xbel
            version    CDATA   #IMPLIED

<!-- contents of info needs some more thought. Adding a meta    -->
<!-- element (like in HTML) makes this open-ended               -->

<!ELEMENT info    (owner?,machinename?)>
<!ELEMENT owner       (#PCDATA)>
<!ELEMENT machinename (#PCDATA)>

<!ELEMENT folder   (title, info?, desc?, (bookmark|folder|separator|alias)+)>
<!ATTLIST folder
            id       ID       #IMPLIED
            added    CDATA    #IMPLIED 
            folded   (yes|no) 'yes'

<!ELEMENT bookmark (title,desc?,url)>
<!ATTLIST bookmark
            id       ID       #IMPLIED
            added    CDATA    #IMPLIED

<!ELEMENT title      (#PCDATA)>
<!ELEMENT desc       (#PCDATA)>
<!ELEMENT url        (#PCDATA)>
            visited  CDATA    #IMPLIED
            modified CDATA    #IMPLIED
            response CDATA    #IMPLIED
            checked  CDATA    #IMPLIED

<!ELEMENT separator EMPTY>

<!ATTLIST alias
            ref       IDREF    #REQUIRED