| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- This is MS.NET bug note. I confirmed them with version 1.1.
- In this document I refer to OASIS test suite (by test case name).
- It is located here:
- http://www.oasis-open.org/committees/documents.php?wg_abbrev=xslt
- No. 0001
- position() handling in predicates is incomplete. For example,
- see foo [position() mod 1 > 0] [position() > 3] [2] result
- (match_match19, match_match22 and match_match26)
- No. 0002
- Import precedence resolution on attribute sets are buggy if there are
- two imported stylesheets and both of them have identically-named
- attribute in the identically-named attribute sets. MS takes the one
- from the first stylesheet, but it must be the one from another.
- (attribset_attribset_45)
- No. 0003
- http://www.w3.org/1999/11/REC-xslt-19991116-errata/ E26 says that
- attribute sets are combined before use-attribute-set is replaced with
- the actual attributes. MS does not conform to this requirement.
- (attribset_attribset42)
- No. 0004
- String variable are not properly compared with strings (at least in
- some cases).
- (select_select67, select_select68, variable_variable24)
- No. 0005
- MS.NET misses some kind of whitespaces.
- (Text_78273 - Text_78276, Text_78281)
- No. 0006
- disable-output-escaping is not working when XmlWriter is specified as
- output. It affects on almost all output operations such as xsl:text,
- xsl:value-of, and so on.
- (Text_78308, Text_78311, Text_modified78308, Text_modified78309,
- Text_modified78311, output_output03, output_output06, output_output08,
- output_output46, output_output61, output_output62, output_output74,
- output_output75, Output_84432, Output_84433)
- No. 0007
- cdata-section-elements is not working when XmlWriter is specified as
- output, like disable-output-escaping.
- (output_output28 - output_output30, output_output41 - output_output43,
- output_output87, output_output88, output_output91 - output_output98,
- output_output101 - output_output107, Text_DoeWithCdataInText).
- No. 0008
- template "match" attribute does not allow variable reference.
- (match_match14)
- No. 0009
- variable references are rejected inside id() function, being said that
- "It either has a variable reference or key function."
- (idkey_idkey43)
- No. 0010
- id() does not consider the possibility that the argument might be a
- list string of IDs.
- (idkey_idkey57)
- No. 0011
- key() does not handle variable references.
- (idkey_idkey18, idkey_idkey50)
- No. 0012
- If "name" attribute of xsl:attribute is evaluated as to contain ':'
- (i.e. CName with non-empty prefix) and no matching xmlns declaration,
- MS.NET raises an error.
- (attribset_attribset15)
- No. 0013
- When XslTransform output is XmlWriter (not Stream), document()
- function is not working properly.
- (copy_copy27, namespace_namespace20, reluri_reluri09 -
- reluri_reluri11, XSLTFunctions_Bug76054, XSLTFunctions_Bug76984,
- XSLTFunctions_DocumentFuncWithEmptyArg, XSLTFunctions_DocumentInUnion,
- XSLTFunctions_DocumentInUnionWithDuplicateNodes,
- XSLTFunctions_DocumentFunctionNoArg)
- No. 0014
- Standard XSLT function unparsed-entity-uri() is not found.
- (expression_expression02)
- No. 0015
- XPath function boolean() treats empty result tree fragment as true.
- (XSLTFunctions_BooleanFunction)
- No. 0016
- If argument QName of element-available() function is expanded to
- have null namespace, it must return false. However MS.NET treats
- such one as XSLT instruction.
- (XSLTFunctions_ElementAvailFunctionTrue)
- No. 0017
- format-number() does not accept some patterns.
- (XSLTFunctions_specialCharInPattern)
- Not sure the reason why:
- idkey_idkey49
- impincl_impincl08
- From mdocs_mdocs01 to mdocs_mdocs18
- whitespace_whitespace35
- Notes:
- 1. Roman numbering
- MS.NET has "Oxford style" which for example converts 99 as
- XXXXXXXXXIX. It is not violating XSLT 1.0 spec. However, section
- 7.7.1 explicitly describes 4 and 9 as iv and ix, so the "strict"
- Oxford style violates the spec.
- 2. Name conflict in variables
- If there is a conflict between a template local variable and a
- for-each local variable, MS.NET raises an error. It is a spec bug
- that does not define the behavior (like "implementation MAY reort
- an error ..., or recover ...).
- 3. Indentation behavior difference
- Even if the xsl:output method is "xml", when indent="yes" is
- specified, the indentation behavior is different depending on the
- passed Transform() outout argument; TextWriter, or XmlTextWriter.
- Currently many of ConflictResolution tests comparison give us
- different results. We always use XmlTextWriter (which should be sane
- for <xsl:output method="xml" />), but with XmlTextWriter:
- XmlTextWriter w = new XmlTextWriter (Console.Out);
- w.Formatting = Formatting.Indented;
- w.WriteString ("- ");
- w.WriteStartElement ("Foo");
- w.WriteEndElement ();
- gives
- 1: -
- 2: <Foo />
- on both MS.NET and Mono, unlike those ConflictResolution tests expect:
- 1: - <Foo />
- So Microsft must have another writer for XML output, but I don't
- think that makes sense (at least it brings inconsistent indentation
- behavior).
- 4. namedtemplate_namedtemplate06
- The stylesheet must be rejected due to the restriction described in
- the spec 5.7. OASIS test suite currently contains REF_OUT but there
- should be no reference output.
|