jez
f87c01fc53
2007-12-20 16:23:56 +00:00
jez
cdac22542e
added type() to XPath expressions. I need this to allow XSLT match patterns to be rewritten properly - see http://www.jezuk.co.uk/cgi-bin/view/arabica/log?id=3546 - but it will also be useful for compile time checking (should I get sufficiently keen :)
2007-12-18 23:03:16 +00:00
jez
02fe02da03
"If the parser has not read a declaration for the attribute, or if the
...
parser does not report attribute types, then it must return the value
"CDATA" as stated in the XML 1.0 Recommentation (clause 3.3.3,
"Attribute-Value Normalization")."
and:
"Returns: The attribute's type as a string, or an empty string if the
index is out of range."
Problem found reported by Christoph Anderegg, christoph@anderegg-sommer.ch
and corrected with this commit.
2007-12-07 23:28:59 +00:00
jez
e659f3cce4
changed scope of StackFrame for apply templates
2007-11-26 23:17:11 +00:00
jez
213934528b
xsl:stylesheet now allows top-level elements in a foreign namespace
2007-11-23 00:07:08 +00:00
jez
7c491700d3
disallow pcdata ahead of xsl:param
2007-11-22 23:02:08 +00:00
jez
6425632f01
blow up if QName is bad
2007-11-22 22:36:47 +00:00
jez
4ed4928695
check xsl:for-each selects a node-set, I suspect it should be able to diagnose this at compile time but it at least it fails :)
2007-11-22 21:54:51 +00:00
jez
c7c0c3d36c
xsl:processing-instruction shouldn't allow xml as the name
2007-11-22 21:24:17 +00:00
jez
cdebc3d128
moved namespace and function resolver into compilation context. disallowed current() in match patterns
2007-11-22 19:24:18 +00:00
jez
375a2d584f
no longer expose xpath compiler directly during XSLT compilation
2007-11-22 17:50:25 +00:00
jez
69a322f7f2
Alex Ott's patch to kill an initialisation order warning
2007-11-22 16:50:33 +00:00
jez
e2713a0fbc
DOM stream now outputs <elem/> for empty elements
2007-11-22 16:49:25 +00:00
jez
95857fc467
detect duplicate variable and parameter names
2007-11-21 22:35:04 +00:00
jez
341d3db1ac
reworked stylesheet compiler and inclusion to trap illegal elements as xsl:stylesheet's children
2007-11-21 22:34:15 +00:00
jez
a9a5858300
working on detecting illegal xsl:stylesheet children - including is currently broken
2007-11-20 23:12:08 +00:00
jez
a0083c14d2
''
2007-11-19 22:11:05 +00:00
jez
0d385d1ab2
xsl:call-template throws if it can't find a matching template
2007-11-16 23:11:39 +00:00
jez
a9d7e1dcdd
verify xsl:sort attribute values
2007-11-16 23:10:41 +00:00
jez
7962545efb
Blow up if unknown child element encounter
2007-11-16 22:27:21 +00:00
jez
308cde7df7
xsl:templates - make sure any mode attribute is not empty
2007-11-16 22:05:42 +00:00
jez
bfe132b8a5
ensure xsl:choose has at least one xsl:when
2007-11-16 22:03:47 +00:00
jez
8f6b783dc7
don't actually need to worry about refcounting here - in fact even though I was keeping count, I wasn't actually doing anything with it :)
2007-11-12 09:06:25 +00:00
jez
67ad360326
tightened constness on DOMImplementation
2007-11-12 09:04:54 +00:00
jez
aacb33a3bd
made destructor public
2007-11-12 09:03:47 +00:00
jez
7b5f83ee43
fixed for empty comment
2007-11-11 21:31:49 +00:00
jez
a1c71b3625
xsl:message can contain an xsl:message - now handled properly
2007-11-11 21:31:10 +00:00
jez
99a5d5cb85
fixed local-name for namespace nodes
2007-11-10 22:23:36 +00:00
jez
7912efaa62
Stream Document fragment nodes properly
2007-11-10 22:22:26 +00:00
jez
68a6d52d11
don't output attributes in the xsl namespace or declare the namespace itself
2007-11-08 23:05:46 +00:00
jez
2053c94f4a
Use std::stable_sort instead of std::sort. When xsl:sort specifies a numerical sort, but you've got some string data in there we need to maintain the relative of that string data. This is the first time I've actually used std::stable_sort. I will mark it down in my big book of programming accomplishments.
2007-11-03 01:55:20 +00:00
jez
2231423e33
escape naughty text when outputting processing instructions and comments
2007-11-02 21:55:50 +00:00
jez
82f22d9dd3
changes to variable scoping in xsl:for-each, xsl:if, and xsl:choose.
2007-11-01 22:28:20 +00:00
jez
a52aafebd5
In XPath node() matches any node of any type. In an XSLT match pattern, node() matches everything except attributes and the document root node. Tweaked that match pattern grammar to introduce a new token in the AST.
2007-10-26 23:24:58 +00:00
jez
adbdb31f65
passed parameters are now unpassed when they aren't needed any more, removing them from the current stack frame. that may not match you idea of what a stack frame actually is (mine too, if I'm honest) but it's a straightforward change to fix a bug
2007-10-26 23:21:21 +00:00
jez
0167bd53c1
XSLT: template mode is now a QName
2007-10-26 19:12:27 +00:00
jez
b45e512845
XSLT: template names are now QNames
2007-10-26 12:28:48 +00:00
jez
3e246cb85a
xsl:apply-imports - params are not passed on through an xsl:apply-imports call
2007-10-25 22:08:31 +00:00
jez
229a859c91
whitespace change
2007-10-25 20:58:27 +00:00
jez
fa235dc7af
Fixed to AttributesImpl.getIndex from Isak Johnsson. Thanks go to him and a "what on earth was I thinking" to me.
2007-10-25 20:57:40 +00:00
jez
af3ebfde60
s/XPathExpressionPtr/XPathExpression/g
2007-10-25 20:42:00 +00:00
jez
a7d050841d
s/XPathExpression/XPathExpression_impl/
2007-10-23 21:37:24 +00:00
jez
fac7cf88de
XPathExpressionPtr no longer derives from boost::shared_ptr, it contains it instead
2007-10-22 20:25:35 +00:00
jez
f6b2ed4966
OK, I think that's it. XPathValue is now your man. Existing code using XPathValuePtr should still work, but new stuff should use XPathValue
2007-10-22 17:42:50 +00:00
jez
6e2f594dc9
more reworking on XPathValuePtr -> XPathValue. XPathValue contains rather than derives from boost::shared_ptr. Added operator== so can still compare to 0 to see if the value is null or not.
2007-10-22 14:10:49 +00:00
jez
9b32ed13e4
Some time ago, it was gently suggested to me that XPathValuePtr and XPathExpressionPtr both exposed an implementation detail, because they derive fromboost::shared_ptr, and provided an interface that was inconsisted with the DOM classes, because you accessed the member functions via -> rather than .
...
At the time, I was just pleased to have got the XPath stuff done and wasn't really fussed, so I left it. Since then though, it's niggled and niggled away at the back of my mind and now I've decided to do something about it.
XPathValuePtr will become XPathValue, with the member functions accessed through the . operator. The XPathValuePtr name and -> member access will be retained for the meantime, so that existing code won't be broken. XPathExpressionPtr will be similarly changed.
This commit is the first bit of that work, now I've satisfied myself it's going to be pretty easy so long as I pay proper attention.
2007-10-19 21:59:24 +00:00
jez
3f156c9fcf
reworked MatchExpr so that it doesn't expose its inner XPathExpression
2007-10-14 20:06:27 +00:00
jez
3d5c7995cb
added value_type typedef as per Evan Burkitt's suggestion
2007-10-05 14:56:26 +00:00
jez
889305618e
fixes for older gcc
2007-09-28 08:30:16 +00:00
jez
494493d1c2
fixed template parameters in libxml2 binding
2007-09-25 21:43:25 +00:00