[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Inheritance/defaulting of attributes
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@d... www.digitome.com xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ To (un)subscribe, mailto:majordomo@i... the following message; (un)subscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|