When fixing namespaceless elements, fix the whole tree.
Bob Arnson committed
Nov 4, 2019 at 15:02 UTC
efcc52fdd0d767d45497ebf54765ad6da7878c6f
2 files changed
+7
-1
src/WixToolset.Converters/Wix3Converter.cs
+1
-1
@@ -422,7 +422,7 @@ namespace WixToolset.Converters
422
423
element.Add(new XAttribute("xmlns", WixNamespace.NamespaceName)); // set the default namespace.
424
425
- foreach (var elementWithoutNamespace in element.Elements().Where(e => XNamespace.None == e.Name.Namespace))
425
+ foreach (var elementWithoutNamespace in element.DescendantsAndSelf().Where(e => XNamespace.None == e.Name.Namespace))
426
{
427
elementWithoutNamespace.Name = WixNamespace.GetName(elementWithoutNamespace.Name.LocalName);
428
}
src/test/WixToolsetTest.Converters/ConverterFixture.cs
+6
@@ -399,12 +399,18 @@ namespace WixToolsetTest.Converters
399
"<?xml version='1.0' encoding='utf-8'?>",
400
"<Include>",
401
" <?define Version = 1.2.3 ?>",
402
+ " <Fragment>",
403
+ " <DirectoryRef Id='TARGETDIR' />",
404
+ " </Fragment>",
405
"</Include>");
406
407
var expected = String.Join(Environment.NewLine,
408
"<?xml version=\"1.0\" encoding=\"utf-16\"?>",
409
"<Include xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">",
410
" <?define Version = 1.2.3 ?>",
411
+ " <Fragment>",
412
+ " <DirectoryRef Id=\"TARGETDIR\" />",
413
+ " </Fragment>",
414
"</Include>");
415
416
var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);