OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: [SML] Whether to support Attribute or not?

[ Lists Home | Date Index | Thread Index ]
  • From: "Clark C. Evans" <clark.evans@manhattanproject.com>
  • To: Don Park <donpark@docuverse.com>
  • Date: Sun, 28 Nov 1999 04:21:36 -0500 (EST)

On Fri, 26 Nov 1999, Don Park wrote:
> I believe it is now time to address the question of
> whether Attribute should be supported in SML or not.


  Attributes cannot be eliminated without 
  providing a suitable replacement.


  The reason why SGML/XML/SML is so powerful is
  that it accurately reflects the dual nature
  of reality.  Code has two aspects -- it is 
  edited as data and run as instructions.

  This pattern is recursive.  Witness yet another
  compiler ("yacc"), it is code which instructs the 
  generation of code.  

  XML is powerful beacuse it recognizes that there are 
  _always_ two simotanenous contexts that must be
  distinguished:  data and markup.  

  Attributes are the result of applying this same 
  pattern recursively on the markup itself.   Thus, a 
  given tag can have instructions (the attribute) and 
  data for those instructions (the attribute's value).   
  Attributes therefore, allow a second order approximation
  to the recursive pattern:

            /           \\ 
           /               [Value] 

                                    /  [Attribute] 
           \\              [Markup] 
            \\           /          \\ [Value]
                           [Content]   ...

  Unfortunately, as pointed out on this list many, many 
  times -- by having a different syntax, attributes do
  not allow for further recursion.  Thus, there is an
  entire realm of reality which cannot be described 
  using XML, since attributes cannot have children.

  Thus, I really doubt that it is possible to have
  a meaningful markup language without attributes --
  however, finding a recursive replacement would 
  be very good.

    <element att="val"> <content/> </element>

    If attributes were eliminated, this would be mapped to:
    <element> <att>val</att> <content/> </element>

  Possibility #1:

    Use a hard-coded namespace,

    <element> <attribute:att>val</attribute:att> <content/> </element>
  Possibility #2:
    Use a marker,

    <element> <$att>val</$att> <content/> </element>

  Possibility #3:

    Use another type of brackets,

    <element> {att}val{/att} <content/> </element>

  Possibility #4:

    Use a divider,

    <element> <att>val</att> <|> <content/> </element>

  In any case, replacing the attribute mechanism with
  one that allows for recursion would allow for
  stuff like:

   <para alt="<b>alt</b>"> para </para>

  To be legally expressed (using syntax #4):

   <para> <alt><b>alt</b></alt> <|> para </para>

Hmm.  Thoughts? 



xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo@ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS