Help SGML / XML
Ruan Strydom
ruan at jcell.co.za
Wed Apr 28 21:15:22 UTC 2010
Me again...
Still confused, I read through the source but time is limited, a little help will speed up understanding the source, thanks.
I am struggling to understanding the duchain and builders (I hope these make sense):
1. How does the 'use' builder come into play? Surely html/body/link etc is an use of the declared element in the DTD? Should I still create a context / declarations for the elements then, does it not
conflict with the use? Or do I create both context/declarations and uses for the same element? Continues at 5 bellow...
2. Should I run the include builder first? The included doctype defines the SGML? And I need to find them in the duchain while parsing the sgml. ie: when the tokenizer hits an element named 'body'
-> find the declaration in the duchain (previously parsed dtd) determine if its closing, required, empty etc, and carry on. (at the moment I am just using a helper class for this)
3. I have an element as a ClassDeclaration (subclassed as 'ElementDeclaration') I want to add a member (collection or hash of attributes) to the class. How do I get the duchain to serialize and
de-serialize the collection or hash? (perhaps someone can help me with the mapping to the relevant duchain classes ie: element -> class, allowed children -> ?, namespace -> ? etc)
4. XSD.. I will leave this for another mail at a later stage ;)
5: Sample duchain dump from the current context and declaration builders (I don't have a use/include builders yet as I have not implemented DTD/XSD completely yet):
(sample from www.yahoo.com). Will the 'use' builder tie these still to the DTD?
"DOCTYPE"
"html"
"html::head"
"html::head::meta"
"html::head::title"
"html::head::title::TEXT"
"html::head::meta"
"html::head::meta"
"html::head::script"
"html::head::script::TEXT"
"html::head::link"
"html::head::style"
"html::head::style::TEXT"
"html::head::style"
"html::head::style::TEXT"
"html::body"
"html::body::div"
"html::body::div::div"
"html::body::div::div::div"
"html::body::div::div::div"
"html::body::div"
"html::body::div::div"
"html::body::div::div::div"
"html::body::div::div::div::div"
"html::body::div::div::div::div::div"
"html::body::div::div::div::div::div::div"
"html::body::div::div::div::div::div::div::div"
"html::body::div::div::div::div::div::div::div::div"
"html::body::div::div::div::div::div::div::div::div::h1"
"html::body::div::div::div::div::div::div::div::div::h1::div"
"html::body::div::div::div::div::div::div::div::div::h1::div::span"
"html::body::div::div::div::div::div::div::div::div::h1::div::span::TEXT"
"html::body::div::div::div::div::div::div::div::div::h1::div"
"html::body::div::div::div::div::div::div::div::div::h1::div::img"
"html::body::div::div::div::div::div::div::div::div::h1::div"
"html::body::div::div::div::div::div::div::div::div::script"
"html::body::div::div::div::div::div::div::div::div::script::TEXT"
"html::body::div::div::div::div::div::div::div::div::script"
"html::body::div::div::div::div::div::div::div::div::script::TEXT"
"html::body::div::div::div::div::div::div::div::div::script"
"html::body::div::div::div::div::div::div::div::div::script::TEXT"
"html::body::div::div::div::div::div::div::div::div::noscript"
"html::body::div::div::div::div::div::div::div::div::noscript::img"
"html::body::div::div::div::div::div::div::div"
"html::body::div::div::div::div::form"
"html::body::div::div::div::div::form::fieldset"
"html::body::div::div::div::div::form::fieldset::legend"
"html::body::div::div::div::div::form::fieldset::legend::TEXT"
"html::body::div::div::div::div::form::fieldset::ul"
"html::body::div::div::div::div::form::fieldset::ul::li"
"html::body::div::div::div::div::form::fieldset::ul::li::a"
More information about the KDevelop-devel
mailing list