1 This is MS.NET bug note. I confirmed them with version 1.1.
3 In this document I refer to OASIS test suite (by test case name).
5 http://www.oasis-open.org/committees/documents.php?wg_abbrev=xslt
9 position() handling in predicates is incomplete. For example,
10 see foo [position() mod 1 > 0] [position() > 3] [2] result
11 (match_match19, match_match22 and match_match26)
14 Import precedence resolution on attribute sets are buggy if there are
15 two imported stylesheets and both of them have identically-named
16 attribute in the identically-named attribute sets. MS takes the one
17 from the first stylesheet, but it must be the one from another.
18 (attribset_attribset_45)
21 http://www.w3.org/1999/11/REC-xslt-19991116-errata/ E26 says that
22 attribute sets are combined before use-attribute-set is replaced with
23 the actual attributes. MS does not conform to this requirement.
24 (attribset_attribset42)
27 String variable are not properly compared with strings (at least in
29 (select_select67, select_select68, variable_variable24)
32 MS.NET misses some kind of whitespaces.
33 (Text_78273 - Text_78276, Text_78281)
36 disable-output-escaping is not working when XmlWriter is specified as
37 output. It affects on almost all output operations such as xsl:text,
38 xsl:value-of, and so on.
39 (Text_78308, Text_78311, Text_modified78308, Text_modified78309,
40 Text_modified78311, output_output03, output_output06, output_output08,
41 output_output46, output_output61, output_output62, output_output74,
42 output_output75, Output_84432, Output_84433)
45 cdata-section-elements is not working when XmlWriter is specified as
46 output, like disable-output-escaping.
47 (output_output28 - output_output30, output_output41 - output_output43,
48 output_output87, output_output88, output_output91 - output_output98,
49 output_output101 - output_output107, Text_DoeWithCdataInText).
52 template "match" attribute does not allow variable reference.
56 variable references are rejected inside id() function, being said that
57 "It either has a variable reference or key function."
61 id() does not consider the possibility that the argument might be a
66 key() does not handle variable references.
67 (idkey_idkey18, idkey_idkey50)
70 If "name" attribute of xsl:attribute is evaluated as to contain ':'
71 (i.e. CName with non-empty prefix) and no matching xmlns declaration,
72 MS.NET raises an error.
73 (attribset_attribset15)
76 When XslTransform output is XmlWriter (not Stream), document()
77 function is not working properly.
78 (copy_copy27, namespace_namespace20, reluri_reluri09 -
79 reluri_reluri11, XSLTFunctions_Bug76054, XSLTFunctions_Bug76984,
80 XSLTFunctions_DocumentFuncWithEmptyArg, XSLTFunctions_DocumentInUnion,
81 XSLTFunctions_DocumentInUnionWithDuplicateNodes,
82 XSLTFunctions_DocumentFunctionNoArg)
85 Standard XSLT function unparsed-entity-uri() is not found.
86 (expression_expression02)
89 XPath function boolean() treats empty result tree fragment as true.
90 (XSLTFunctions_BooleanFunction)
93 If argument QName of element-available() function is expanded to
94 have null namespace, it must return false. However MS.NET treats
95 such one as XSLT instruction.
96 (XSLTFunctions_ElementAvailFunctionTrue)
99 format-number() does not accept some patterns.
100 (XSLTFunctions_specialCharInPattern)
103 Not sure the reason why:
106 From mdocs_mdocs01 to mdocs_mdocs18
107 whitespace_whitespace35
114 MS.NET has "Oxford style" which for example converts 99 as
115 XXXXXXXXXIX. It is not violating XSLT 1.0 spec. However, section
116 7.7.1 explicitly describes 4 and 9 as iv and ix, so the "strict"
117 Oxford style violates the spec.
119 2. Name conflict in variables
121 If there is a conflict between a template local variable and a
122 for-each local variable, MS.NET raises an error. It is a spec bug
123 that does not define the behavior (like "implementation MAY reort
124 an error ..., or recover ...).
126 3. Indentation behavior difference
128 Even if the xsl:output method is "xml", when indent="yes" is
129 specified, the indentation behavior is different depending on the
130 passed Transform() outout argument; TextWriter, or XmlTextWriter.
132 Currently many of ConflictResolution tests comparison give us
133 different results. We always use XmlTextWriter (which should be sane
134 for <xsl:output method="xml" />), but with XmlTextWriter:
136 XmlTextWriter w = new XmlTextWriter (Console.Out);
137 w.Formatting = Formatting.Indented;
138 w.WriteString ("- ");
139 w.WriteStartElement ("Foo");
140 w.WriteEndElement ();
147 on both MS.NET and Mono, unlike those ConflictResolution tests expect:
151 So Microsft must have another writer for XML output, but I don't
152 think that makes sense (at least it brings inconsistent indentation
155 4. namedtemplate_namedtemplate06
157 The stylesheet must be rejected due to the restriction described in
158 the spec 5.7. OASIS test suite currently contains REF_OUT but there
159 should be no reference output.