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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Inheritance/defaulting of attributes

[ Lists Home | Date Index | Thread Index ]
  • From: Sean Mc Grath <digitome@iol.ie>
  • To: xml-dev@ic.ac.uk
  • Date: Wed, 8 Oct 1997 16:53:33 +0100

A small amount of a modern OO language can go a long way towards
providing a mechanism for wielding inheritance with SGML element types
and spitting out 8879 DTDs.

Just for fun, I doodled this in Python. N.B. this idea can be taken
a *whole* lot further. Also, I'm sure Perl5, Java etc. can be wielded
similarly.

# Declare a class "Animal" derived from ElementType
class Animal(ElementType):
        def __init__(self,gi):
                ElementType.__init__(self,gi)
                # All Animals have legs
                self.attrs["LEGS"] = ("NUMBER","#REQUIRED")

# Declare a class "Dog" derived from "Animal"
class Dog(Animal):
        def __init__(self,gi):
                Animal.__init__(self,gi)
                #Some dogs have Rabies
                self.attrs["RABIES"] = ("(YES,NO)","#REQUIRED")

# Create Animal and Dog element types, printing out the attribute list
declaration
print Animal("MyAnimal")
print Dog ("MyDog")


This script prints :-

<!ATTLIST MyAnimal
        LEGS NUMBER #REQUIRED>
<!ATTLIST MyDog
        RABIES (YES,NO) #REQUIRED
        LEGS NUMBER #REQUIRED
>


The bass class "ElementType" is just this:-

class ElementType:
        def __init__(self,gi):
                self.attrs = {}
                self.gi = gi

        # Method to print self
        def __repr__(self):
                res = "<!ATTLIST " + self.gi
                for (Name,(DeclaredValue,DefaultValue)) in self.attrs.items():
                        res = res+"\t"+Name+" "+DeclaredValue+"
"+DefaultValue + "\n"
                res = res + ">"
                return res

Sean Mc Grath
sean@digitome.com
www.digitome.com



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/
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe 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