| Index: third_party/libxslt/NOTES
|
| diff --git a/third_party/libxslt/NOTES b/third_party/libxslt/NOTES
|
| deleted file mode 100644
|
| index 1314b8d1f518a95379f4ec2f50465a08f63e50dd..0000000000000000000000000000000000000000
|
| --- a/third_party/libxslt/NOTES
|
| +++ /dev/null
|
| @@ -1,253 +0,0 @@
|
| -
|
| - NOTES relative to the implementation
|
| - ====================================
|
| -
|
| -xsl:stylesheet:
|
| -
|
| - all children except xsl:import can be in any order, so this
|
| -can be stored as one big structure.
|
| -
|
| -xsl:include:
|
| -
|
| - this is really similar to XInclude, can be implemented as a
|
| -nearly separate processing just after the XML stylesheet has been
|
| -parsed.
|
| - Detect loops using a limited stack ...
|
| -
|
| -xsl:import:
|
| -
|
| - seems this should be really implemented as having a stylesheet
|
| -sublist being itself an import list
|
| -
|
| - add the list at the end
|
| - when doing a resolution explore child before siblings in the list
|
| -
|
| -3 Data Model, we should operate on parsed trees
|
| -
|
| -3.1 No problem
|
| -
|
| -3.2 use the XML Base call, XSLT-1.1 references it
|
| -
|
| -3.4 Whitespace Stripping
|
| -
|
| - Seems one may have to do a bit of preprocessing on both the
|
| -stylesheet trees and the source trees.
|
| -
|
| -4 Expressions
|
| -
|
| - looks okay, wondering about variable bindings though...
|
| - default namespace not in scope
|
| -
|
| -5.1 Processing Model
|
| -
|
| - look in Michael Kay's book about how to efficiently find the
|
| -template applying to a node. Might influence the in-memory stylesheet
|
| -representation
|
| -
|
| -5.2 Patterns
|
| -
|
| - the end of that section suggest that the expression could be computed in
|
| -a simpler way. Maybe templates needs to be evaluated differently than
|
| -through the normal XPath processing. This can be implemented separately
|
| -or build an expression tree in the XPath module and use a different
|
| -evaluation mechanism. Not sure this is best.
|
| -
|
| -5.4 Applying Template Rules
|
| -
|
| - xsl:apply-templates is the recurstion mechanism, note the select
|
| -mechanism.
|
| -
|
| - detection of loop: once the applied nodeset has been computed,
|
| -check that none of the elements is part of the existing set in use, this
|
| -may be costly and should be triggered only at a certain depth.
|
| -
|
| -5.5 Conflict Resolution for Template Rules
|
| -
|
| - Sounds again that evaluation of a pattern rule should provide one
|
| -more information not provided by the standard XPath evaluation
|
| -
|
| -5.6 Overriding Template Rules
|
| -
|
| - another recursion mechanism, confirm that it is needed to separate
|
| -the imported stylesheets.
|
| -
|
| -5.7 Modes
|
| -
|
| - Confusing ??? need an example.
|
| -
|
| -6 Named Templates
|
| -
|
| - No big deal it seems
|
| -
|
| -7.1.1 Literal Result Elements
|
| -
|
| - cleanup of the namespace template should be done initially at stylesheet
|
| -parsing.
|
| -
|
| -7.1.2 Creating Elements with xsl:element
|
| -
|
| - okay, I bet it's usually used with { } expression computations
|
| -
|
| -7.1.3 Creating Attributes with xsl:attribute
|
| -
|
| - need some running code to better understand all the subtilties
|
| -
|
| -7.1.4 Named Attribute Sets
|
| -
|
| - Okay just a way to mimick param entities use fo attrib groups in Dtd's
|
| -
|
| -7.2 Creating Text
|
| -
|
| - adjacent text nodes are merged ... okay
|
| - output escapeing might need a libxml API extension
|
| -
|
| -7.3 Creating Processing Instructions
|
| -7.4 Creating Comments
|
| -
|
| - RAS, one just need to make a couple of trivial checks
|
| -
|
| -7.5 Copying
|
| -
|
| - Okay will need some testing
|
| -
|
| -7.6.1 Generating Text with xsl:value-of
|
| -
|
| - will be a good test for XPath string() function
|
| - note in the example that the text nodes are coalesced
|
| -
|
| -7.6.2 Attribute Value Templates
|
| -
|
| - hum, this is
|
| - - contextual
|
| - - uses XPath
|
| -
|
| - best seems to parse, generate an evaluation tree then evaluate
|
| -when accessed. Note that multipe expressions can be associated to
|
| -a single attribute. Sounds like i will have to introduce a new
|
| -element type inserted in the attribute nodelist. dohh ...
|
| -
|
| -7.7 Numbering
|
| -
|
| - sounds interesting for users but might be costly, we will see ...
|
| -
|
| -7.7.1 Number to String Conversion Attributes
|
| -
|
| - format="..." :-( it's gonna be painful ...
|
| -
|
| -8 Repetition
|
| -9 Conditional Processing
|
| -
|
| - doesn't sounds hard to implement since we are at an interpreter
|
| -level but really useful in practice. Will be simple once the overall
|
| -framework is set-up.
|
| -
|
| -10 Sorting
|
| -
|
| - Okay applied to the node list of an xsl:apply-templates or xsl:for-each
|
| -
|
| - The NOTEs are a bit scary ...
|
| -
|
| -11 Variables and Parameters
|
| -
|
| - Variables can only be afttected at the top level, so it
|
| -seems they act only as global variables ...
|
| - But this is by regions .... so some of the statements within
|
| -a stylesheet my use a different set than others ... in practice
|
| -it turns to be nearly like loacal variables ....
|
| - Need more thinking on this to handle it properly.
|
| - Might explain on of TOM's requests w.r.t. variable resolution
|
| -
|
| -11.1 Result Tree Fragments
|
| -
|
| - Dohhh a new type ...
|
| - actually it's just a node set restricted type
|
| -
|
| -11.2 Values of Variables and Parameters
|
| -
|
| - okay, real problem is scoping ...
|
| -
|
| -11.3 Using Values of Variables and Parameters with xsl:copy-of
|
| -
|
| - No surprize
|
| -
|
| -11.4 Top-level Variables and Parameters
|
| -
|
| - It is an error if a stylesheet contains more than one binding
|
| - of a top-level variable with the same name and same import precedence
|
| -
|
| - => ah ah, so it seems one can associate the variable bindings
|
| -to a stylesheet and if needed recurse down the import list if not
|
| -found, would simplify things a lot !
|
| -
|
| - If the template or expression specifying the value of a global variable
|
| -x references a global variable y, then the value for y must be computed
|
| -before the value of x.
|
| -
|
| - => Values can probably be computed dynamically at reference
|
| -time, if this generate a loop, then it's an error. Lazy computations
|
| -are great ...
|
| -
|
| -11.5 Variables and Parameters within Templates
|
| -
|
| -
|
| - xsl:variable is allowed anywhere within a template that an instruction
|
| -is allowed. In this case, the binding is visible for all following siblings
|
| -and their descendants.
|
| - It is an error if a binding established by an xsl:variable or xsl:param
|
| -element within a template shadows another binding established by an
|
| -xsl:variable or xsl:param element also within the template.
|
| -
|
| - => the example seems to imply that we can simply keep a list of
|
| - local variable binding to a template ... sounds fine.
|
| -
|
| -11.6 Passing Parameters to Templates
|
| -
|
| - => Okay the parameter overrides the local binding
|
| -
|
| -12.1 Multiple Source Documents
|
| -12.2 Keys
|
| -
|
| - skipped for now
|
| -
|
| -12.3 Number Formatting
|
| -
|
| - reimplementing Java formatting in C is gonna be a pain !
|
| -
|
| -12.4 Miscellaneous Additional Functions
|
| -
|
| - current() => trivial
|
| -
|
| - unparsed-entity-uri() => support in uri.c should do
|
| -
|
| - generate-id() => use the in-memory address of the node ???
|
| -
|
| - system-property() => sounds simple
|
| -
|
| -13 Messages
|
| -
|
| - trivial I/Os
|
| -
|
| -14 Extensions
|
| -15 Fallback
|
| -
|
| - skipped for now
|
| -
|
| -16 Output
|
| -
|
| -16.1 XML Output Method
|
| -
|
| - sounds that calling directly libxml output on the result tree
|
| -should do it with a few caveats, for example one need to be
|
| -able to parametrize the output
|
| -
|
| -16.2 HTML Output Method
|
| -
|
| - sounds that calling libxml HTML output should do it too
|
| -
|
| -16.3 Text Output Method
|
| -
|
| - doesn't sounds too hard ...
|
| -
|
| -16.4 Disabling Output Escaping
|
| -
|
| - hum ... might be a bit painful to implement with the current framework.
|
|
|