Re: [xml] Debugging included entites

Hi all,

I wonder, since the only node that has a line number is XML_ELEMENT_NODE, and 
the only data (that I'm aware of ) that the content variable holds  for a 
XML_ELEMENT_NODE is a (void*)long

Would it be possible to change the meaning of the content variable to point 
to a structure instead of just a (void*)long

Maybe something like 
  struct xmlLineInfo {
        long lineNo;           
        const xmlChar* uri;  /* only use for included entities */
I'm not sure how many people are using the value of the line number  directly 
rather than using xmlGetLineNo(..) :-(. 

Could I please get an indication of how many people are using the line number 
directly from the node, rather than via xmlGetLineNo(..) ?

This would meaning changing xmlGetLineNo but I think it would affect one or 
two lines. It would also afftect xmlStaticCopyNode, xmlFreeNode, 
startElement, xmlTreeCopy by the same amount.. I'm not sure if there are 
other functions this change would effect. :-(


The other possiblity I just thought of is adding a "xsldbg:uri" attribute to 
the entity nodes. I'm not sure how much this would slow down libxslt 
processing. This would mean xmlAddEntityReference, 
xmlSetEntityReferenceFunc, xmlEntityReferenceFunc be added to libxml

To address my conscerns about slowing down libxslt,  If the debugger enabled 
libxml/libxslt was built ONLY  as a static library into a path outside of the 
normal $LD_LIBRARY_PATH values and xsldbg link to those libraries would that 
be suffient to ensure normal use of libxml/libxslt be unaffecttect by the use 
of  "xsldbg:uri" attribute?


The things you mentioned involving changes to XPath would be WAY beyond the 
amount of changes that I'm looking for. I certainly would NOT be seeking to 
cause any binary compatablity problems. I'm just trying to find a 
simple/workable solution. In the process I'm trying to work out how much 
change would be needed to libxml and the users of the libxml library, 
including other libraries that are based on libxml, and find the option that 
creates the least amount of change. 


Keith Isdale

k_isdale tpg com au | xsldbg stylesheet debugger

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]