@joebigelow / wix / commits / ed0fb395

Remove obsolete inner text handling

Rob Mensching committed Jun 23, 2020 at 00:56 UTC ed0fb39537c0cfb13922537a26f9d895180d42d8
12 files changed +37 -409
src/WixToolset.Core/Common.cs
+2 -4
@@ -690,10 +690,8 @@ namespace WixToolset.Core
690 /// <summary>
691 /// Gets the text of an XElement.
692 /// </summary>
693 - /// <param name="sourceLineNumbers">Source line information about the owner element.</param>
694 - /// <param name="attribute">The attribute containing the value to get.</param>
695 - /// <param name="messageHandler">A delegate that receives error messages.</param>
696 - /// <returns>The attribute's YesNoType value.</returns>
693 + /// <param name="node">Element to get text.</param>
694 + /// <returns>The element's text.</returns>
695 internal static string GetInnerText(XElement node)
696 {
697 var text = node.Nodes().Where(n => XmlNodeType.Text == n.NodeType || XmlNodeType.CDATA == n.NodeType).Cast<XText>().FirstOrDefault();
src/WixToolset.Core/Compiler.cs
-188
@@ -2319,14 +2319,6 @@ namespace WixToolset.Core
2319 case "Class":
2320 this.ParseClassElement(child, id.Id, YesNoType.NotSet, null, null, null, null);
2321 break;
2322 - case "Condition":
2323 - if (null != condition)
2324 - {
2325 - var childSourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
2326 - this.Core.Write(ErrorMessages.TooManyChildren(childSourceLineNumbers, node.Name.LocalName, child.Name.LocalName));
2327 - }
2328 - condition = this.ParseConditionElement(child, node.Name.LocalName, null, null);
2329 - break;
2322 case "CopyFile":
2323 this.ParseCopyFileElement(child, id.Id, null);
2324 break;
@@ -3382,17 +3374,12 @@ namespace WixToolset.Core
3374 win64 = true;
3375 }
3376
3385 - // get the inner text if any exists
3386 - var innerText = this.Core.GetTrimmedInnerText(node);
3387 -
3377 // if we have an in-lined Script CustomAction ensure no source or target attributes were provided
3378 if (inlineScript)
3379 {
3380 if (String.IsNullOrEmpty(scriptFile))
3381 {
3382 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "ScriptFile", "Script"));
3394 -
3395 - target = innerText;
3383 }
3384 }
3385 else if (CustomActionTargetType.VBScript == targetType) // non-inline vbscript
@@ -3428,10 +3415,6 @@ namespace WixToolset.Core
3415 {
3416 this.Core.Write(ErrorMessages.IllegalAttributeWithoutOtherAttributes(sourceLineNumbers, node.Name.LocalName, "Value", "Directory", "Property", "Error"));
3417 }
3431 - else if (!String.IsNullOrEmpty(innerText)) // inner text cannot be specified with non-script CAs
3432 - {
3433 - this.Core.Write(ErrorMessages.CustomActionIllegalInnerText(sourceLineNumbers, node.Name.LocalName, innerText, "Script"));
3434 - }
3418
3419 if (!inlineScript && !String.IsNullOrEmpty(scriptFile))
3420 {
@@ -4053,11 +4036,6 @@ namespace WixToolset.Core
4036 this.Core.Write(ErrorMessages.ExpectedAttribute(childSourceLineNumbers, child.Name.LocalName, "Column"));
4037 }
4038
4056 - if (String.IsNullOrEmpty(data))
4057 - {
4058 - data = Common.GetInnerText(child);
4059 - }
4060 -
4039 if (!this.Core.EncounteredError)
4040 {
4041 this.Core.AddTuple(new WixCustomTableCellTuple(childSourceLineNumbers, new Identifier(AccessModifier.Private, tableId, rowId, columnName))
@@ -4864,9 +4842,6 @@ namespace WixToolset.Core
4842 case "Component":
4843 this.ParseComponentElement(child, ComplexReferenceParentType.Feature, id.Id, null, CompilerConstants.IntegerNotSet, null, null);
4844 break;
4867 - case "Condition":
4868 - this.ParseConditionElement(child, node.Name.LocalName, id.Id, null);
4869 - break;
4845 case "Feature":
4846 this.ParseFeatureElement(child, ComplexReferenceParentType.Feature, id.Id, ref childDisplay);
4847 break;
@@ -5368,11 +5343,6 @@ namespace WixToolset.Core
5343 id = CompilerConstants.IllegalInteger;
5344 }
5345
5371 - if (String.IsNullOrEmpty(message))
5372 - {
5373 - message = Common.GetInnerText(node);
5374 - }
5375 -
5346 this.Core.ParseForExtensionElements(node);
5347
5348 if (!this.Core.EncounteredError)
@@ -6232,9 +6202,6 @@ namespace WixToolset.Core
6202 case "ComponentGroup":
6203 this.ParseComponentGroupElement(child, ComplexReferenceParentType.Unknown, id?.Id);
6204 break;
6235 - case "Condition":
6236 - this.ParseConditionElement(child, node.Name.LocalName, null, null);
6237 - break;
6205 case "Container":
6206 this.ParseContainerElement(child);
6207 break;
@@ -6418,161 +6385,6 @@ namespace WixToolset.Core
6385 }
6386 }
6387
6421 - /// <summary>
6422 - /// Parses a condition element.
6423 - /// </summary>
6424 - /// <param name="node">Element to parse.</param>
6425 - /// <param name="parentElementLocalName">LocalName of the parent element.</param>
6426 - /// <param name="id">Id of the parent element.</param>
6427 - /// <param name="dialog">Dialog of the parent element if its a Control.</param>
6428 - /// <returns>The condition if one was found.</returns>
6429 - private string ParseConditionElement(XElement node, string parentElementLocalName, string id, string dialog)
6430 - {
6431 - var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
6432 - string action = null;
6433 - string condition = null;
6434 - var level = CompilerConstants.IntegerNotSet;
6435 - string message = null;
6436 -
6437 - foreach (var attrib in node.Attributes())
6438 - {
6439 - if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || CompilerCore.WixNamespace == attrib.Name.Namespace)
6440 - {
6441 - switch (attrib.Name.LocalName)
6442 - {
6443 - case "Action":
6444 - if ("Control" == parentElementLocalName)
6445 - {
6446 - action = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
6447 - switch (action)
6448 - {
6449 - case "default":
6450 - action = "Default";
6451 - break;
6452 - case "disable":
6453 - action = "Disable";
6454 - break;
6455 - case "enable":
6456 - action = "Enable";
6457 - break;
6458 - case "hide":
6459 - action = "Hide";
6460 - break;
6461 - case "show":
6462 - action = "Show";
6463 - break;
6464 - case "":
6465 - break;
6466 - default:
6467 - this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, action, "default", "disable", "enable", "hide", "show"));
6468 - break;
6469 - }
6470 - }
6471 - else
6472 - {
6473 - this.Core.UnexpectedAttribute(node, attrib);
6474 - }
6475 - break;
6476 - case "Level":
6477 - if ("Feature" == parentElementLocalName)
6478 - {
6479 - level = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, Int16.MaxValue);
6480 - }
6481 - else
6482 - {
6483 - this.Core.UnexpectedAttribute(node, attrib);
6484 - }
6485 - break;
6486 - case "Message":
6487 - if ("Fragment" == parentElementLocalName || "Product" == parentElementLocalName)
6488 - {
6489 - message = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
6490 - }
6491 - else
6492 - {
6493 - this.Core.UnexpectedAttribute(node, attrib);
6494 - }
6495 - break;
6496 - default:
6497 - this.Core.UnexpectedAttribute(node, attrib);
6498 - break;
6499 - }
6500 - }
6501 - else
6502 - {
6503 - this.Core.ParseExtensionAttribute(node, attrib);
6504 - }
6505 - }
6506 -
6507 - // get the condition from the inner text of the element
6508 - condition = this.Core.GetConditionInnerText(node);
6509 -
6510 - this.Core.ParseForExtensionElements(node);
6511 -
6512 - // the condition should not be empty
6513 - if (null == condition || 0 == condition.Length)
6514 - {
6515 - condition = null;
6516 - this.Core.Write(ErrorMessages.ConditionExpected(sourceLineNumbers, node.Name.LocalName));
6517 - }
6518 -
6519 - switch (parentElementLocalName)
6520 - {
6521 - case "Control":
6522 - if (null == action)
6523 - {
6524 - this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Action"));
6525 - }
6526 -
6527 - if (!this.Core.EncounteredError)
6528 - {
6529 - this.Core.AddTuple(new ControlConditionTuple(sourceLineNumbers)
6530 - {
6531 - DialogRef = dialog,
6532 - ControlRef = id,
6533 - Action = action,
6534 - Condition = condition,
6535 - });
6536 - }
6537 - break;
6538 - case "Feature":
6539 - if (CompilerConstants.IntegerNotSet == level)
6540 - {
6541 - this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Level"));
6542 - level = CompilerConstants.IllegalInteger;
6543 - }
6544 -
6545 - if (!this.Core.EncounteredError)
6546 - {
6547 - this.Core.AddTuple(new ConditionTuple(sourceLineNumbers)
6548 - {
6549 - FeatureRef = id,
6550 - Level = level,
6551 - Condition = condition
6552 - });
6553 - }
6554 - break;
6555 - case "Fragment":
6556 - case "Product":
6557 - if (null == message)
6558 - {
6559 - this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Message"));
6560 - }
6561 -
6562 - if (!this.Core.EncounteredError)
6563 - {
6564 - this.Core.AddTuple(new LaunchConditionTuple(sourceLineNumbers)
6565 - {
6566 - Condition = condition,
6567 - Description = message
6568 - });
6569 - }
6570 - break;
6571 - }
6572 -
6573 - return condition;
6574 - }
6575 -
6388 /// <summary>
6389 /// Parses a IniFile element.
6390 /// </summary>
src/WixToolset.Core/CompilerCore.cs
-20
@@ -321,26 +321,6 @@ namespace WixToolset.Core
321 return Common.IsValidModuleOrBundleVersion(version);
322 }
323
324 - /// <summary>
325 - /// Get an element's inner text and trims any extra whitespace.
326 - /// </summary>
327 - /// <param name="element">The element with inner text to be trimmed.</param>
328 - /// <returns>The node's inner text trimmed.</returns>
329 - public string GetTrimmedInnerText(XElement element)
330 - {
331 - return this.parseHelper.GetTrimmedInnerText(element);
332 - }
333 -
334 - /// <summary>
335 - /// Gets element's inner text and ensure's it is safe for use in a condition by trimming any extra whitespace.
336 - /// </summary>
337 - /// <param name="element">The element to ensure inner text is a condition.</param>
338 - /// <returns>The value converted into a safe condition.</returns>
339 - public string GetConditionInnerText(XElement element)
340 - {
341 - return this.parseHelper.GetConditionInnerText(element);
342 - }
343 -
324 /// <summary>
325 /// Creates a version 3 name-based UUID.
326 /// </summary>
src/WixToolset.Core/Compiler_2.cs
+4 -109
@@ -186,9 +186,6 @@ namespace WixToolset.Core
186 case "ComponentGroup":
187 this.ParseComponentGroupElement(child, ComplexReferenceParentType.Unknown, null);
188 break;
189 - case "Condition":
190 - this.ParseConditionElement(child, node.Name.LocalName, null, null);
191 - break;
189 case "CustomAction":
190 this.ParseCustomActionElement(child);
191 break;
@@ -228,6 +225,9 @@ namespace WixToolset.Core
225 case "InstanceTransforms":
226 this.ParseInstanceTransformsElement(child);
227 break;
228 + case "Launch":
229 + this.ParseLaunchElement(child);
230 + break;
231 case "MajorUpgrade":
232 this.ParseMajorUpgradeElement(child, contextValues);
233 break;
@@ -1235,31 +1235,7 @@ namespace WixToolset.Core
1235 id = this.Core.CreateIdentifier("pme", objectId, tableName, sddl);
1236 }
1237
1238 - foreach (var child in node.Elements())
1239 - {
1240 - if (CompilerCore.WixNamespace == child.Name.Namespace)
1241 - {
1242 - switch (child.Name.LocalName)
1243 - {
1244 - case "Condition":
1245 - if (null != condition)
1246 - {
1247 - var childSourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
1248 - this.Core.Write(ErrorMessages.TooManyChildren(childSourceLineNumbers, node.Name.LocalName, child.Name.LocalName));
1249 - }
1250 -
1251 - condition = this.ParseConditionElement(child, node.Name.LocalName, null, null);
1252 - break;
1253 - default:
1254 - this.Core.UnexpectedElement(node, child);
1255 - break;
1256 - }
1257 - }
1258 - else
1259 - {
1260 - this.Core.ParseExtensionElement(node, child);
1261 - }
1262 - }
1238 + this.Core.ParseForExtensionElements(node);
1239
1240 if (!this.Core.EncounteredError)
1241 {
@@ -1537,20 +1513,6 @@ namespace WixToolset.Core
1513 this.Core.Write(ErrorMessages.CannotAuthorSpecialProperties(sourceLineNumbers, id.Id));
1514 }
1515
1540 - var innerText = this.Core.GetTrimmedInnerText(node);
1541 - if (null != value)
1542 - {
1543 - // cannot specify both the value attribute and inner text
1544 - if (!String.IsNullOrEmpty(innerText))
1545 - {
1546 - this.Core.Write(ErrorMessages.IllegalAttributeWithInnerText(sourceLineNumbers, node.Name.LocalName, "Value"));
1547 - }
1548 - }
1549 - else // value attribute not specified, use inner text if any.
1550 - {
1551 - value = innerText;
1552 - }
1553 -
1516 if ("ErrorDialog" == id.Id)
1517 {
1518 this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Dialog, value);
@@ -2090,11 +2052,6 @@ namespace WixToolset.Core
2052 }
2053 }
2054
2093 - if (multiStringValue == null)
2094 - {
2095 - multiStringValue = Common.GetInnerText(node);
2096 - }
2097 -
2055 if (multiStringValue == null)
2056 {
2057 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value"));
@@ -2683,12 +2640,6 @@ namespace WixToolset.Core
2640 }
2641 }
2642
2686 - // Get the condition from the inner text of the element.
2687 - if (condition == null)
2688 - {
2689 - condition = this.Core.GetConditionInnerText(child);
2690 - }
2691 -
2643 if (customAction && "Custom" == actionName)
2644 {
2645 this.Core.Write(ErrorMessages.ExpectedAttribute(childSourceLineNumbers, child.Name.LocalName, "Action"));
@@ -3152,11 +3103,6 @@ namespace WixToolset.Core
3103 }
3104 }
3105
3155 - if (privilege == null)
3156 - {
3157 - privilege = Common.GetInnerText(node);
3158 - }
3159 -
3106 if (privilege == null)
3107 {
3108 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Name"));
@@ -3518,11 +3464,6 @@ namespace WixToolset.Core
3464 }
3465 }
3466
3521 - if (argument == null)
3522 - {
3523 - argument = this.Core.GetTrimmedInnerText(node);
3524 - }
3525 -
3467 if (argument == null)
3468 {
3469 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value"));
@@ -3860,11 +3801,6 @@ namespace WixToolset.Core
3801 }
3802 }
3803
3863 - if (condition == null)
3864 - {
3865 - condition = this.Core.GetConditionInnerText(node);
3866 - }
3867 -
3804 if (null == id)
3805 {
3806 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id"));
@@ -3957,29 +3893,6 @@ namespace WixToolset.Core
3893 this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, sequenceValue, "execute", "ui", "both"));
3894 break;
3895 }
3960 - //if (0 < sequenceValue.Length)
3961 - //{
3962 - // var sequenceType = Wix.Enums.ParseSequenceType(sequenceValue);
3963 - // switch (sequenceType)
3964 - // {
3965 - // case Wix.SequenceType.execute:
3966 - // sequences = new string[] { "InstallExecuteSequence" };
3967 - // break;
3968 - // case Wix.SequenceType.ui:
3969 - // sequences = new string[] { "InstallUISequence" };
3970 - // break;
3971 - // case Wix.SequenceType.first:
3972 - // firstSequence = true;
3973 - // // default puts it in both sequence which is what we want
3974 - // break;
3975 - // case Wix.SequenceType.both:
3976 - // // default so no work necessary.
3977 - // break;
3978 - // default:
3979 - // this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, sequenceValue, "execute", "ui", "both"));
3980 - // break;
3981 - // }
3982 - //}
3896 break;
3897 case "Value":
3898 value = this.Core.GetAttributeValue(sourceLineNumbers, attrib, EmptyRule.CanBeEmpty);
@@ -3995,11 +3908,6 @@ namespace WixToolset.Core
3908 }
3909 }
3910
3998 - if (condition == null)
3999 - {
4000 - condition = this.Core.GetConditionInnerText(node);
4001 - }
4002 -
3911 if (null == id)
3912 {
3913 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id"));
@@ -4528,19 +4436,6 @@ namespace WixToolset.Core
4436 id = this.Core.CreateIdentifier("scp", shortcutId, key.ToUpperInvariant());
4437 }
4438
4531 - var innerText = this.Core.GetTrimmedInnerText(node);
4532 - if (!String.IsNullOrEmpty(innerText))
4533 - {
4534 - if (String.IsNullOrEmpty(value))
4535 - {
4536 - value = innerText;
4537 - }
4538 - else // cannot specify both the value attribute and inner text
4539 - {
4540 - this.Core.Write(ErrorMessages.IllegalAttributeWithInnerText(sourceLineNumbers, node.Name.LocalName, "Value"));
4541 - }
4542 - }
4543 -
4439 if (String.IsNullOrEmpty(value))
4440 {
4441 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value"));
src/WixToolset.Core/Compiler_Bundle.cs
-5
@@ -1056,11 +1056,6 @@ namespace WixToolset.Core
1056 this.Core.Write(ErrorMessages.ExpectedAttribute(childSourceLineNumbers, child.Name.LocalName, "Id"));
1057 }
1058
1059 - if (String.IsNullOrEmpty(value))
1060 - {
1061 - value = Common.GetInnerText(child);
1062 - }
1063 -
1059 if (!this.Core.EncounteredError)
1060 {
1061 this.Core.AddTuple(new WixBundleCustomDataCellTuple(childSourceLineNumbers, new Identifier(AccessModifier.Private, customDataId, elementId, attributeName))
src/WixToolset.Core/Compiler_EmbeddedUI.cs
-6
@@ -80,12 +80,6 @@ namespace WixToolset.Core
80 }
81 }
82
83 - if (condition == null)
84 - {
85 - // Get the condition from the inner text of the element.
86 - condition = this.Core.GetConditionInnerText(node);
87 - }
88 -
83 if (null == id)
84 {
85 id = this.Core.CreateIdentifier("mec", source, type.ToString());
src/WixToolset.Core/Compiler_UI.cs
-43
@@ -700,11 +700,6 @@ namespace WixToolset.Core
700 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Action"));
701 }
702
703 - if (null == message)
704 - {
705 - message = Common.GetInnerText(node);
706 - }
707 -
703 this.Core.ParseForExtensionElements(node);
704
705 if (!this.Core.EncounteredError)
@@ -751,11 +746,6 @@ namespace WixToolset.Core
746 }
747 }
748
754 - if (null == text)
755 - {
756 - text = Common.GetInnerText(node);
757 - }
758 -
749 if (null == id)
750 {
751 id = this.Core.CreateIdentifier("txt", text);
@@ -1270,26 +1260,6 @@ namespace WixToolset.Core
1260 this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, iconSizeValue, "16", "32", "48"));
1261 break;
1262 }
1273 - //if (0 < iconSizeValue.Length)
1274 - //{
1275 - // var iconsSizeType = Wix.Control.ParseIconSizeType(iconSizeValue);
1276 - // switch (iconsSizeType)
1277 - // {
1278 - // case Wix.Control.IconSizeType.Item16:
1279 - // this.Core.TrySetBitFromName(specialAttributes, "Icon16", YesNoType.Yes, bits, 16);
1280 - // break;
1281 - // case Wix.Control.IconSizeType.Item32:
1282 - // this.Core.TrySetBitFromName(specialAttributes, "Icon32", YesNoType.Yes, bits, 16);
1283 - // break;
1284 - // case Wix.Control.IconSizeType.Item48:
1285 - // this.Core.TrySetBitFromName(specialAttributes, "Icon16", YesNoType.Yes, bits, 16);
1286 - // this.Core.TrySetBitFromName(specialAttributes, "Icon32", YesNoType.Yes, bits, 16);
1287 - // break;
1288 - // default:
1289 - // this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, iconSizeValue, "16", "32", "48"));
1290 - // break;
1291 - // }
1292 - //}
1263 }
1264 else
1265 {
@@ -1411,9 +1381,6 @@ namespace WixToolset.Core
1381 case "ComboBox":
1382 this.ParseControlGroupElement(child, TupleDefinitionType.ComboBox, "ListItem");
1383 break;
1414 - case "Condition":
1415 - this.ParseConditionElement(child, node.Name.LocalName, controlId.Id, dialog);
1416 - break;
1384 case "ListBox":
1385 this.ParseControlGroupElement(child, TupleDefinitionType.ListBox, "ListItem");
1386 break;
@@ -1456,11 +1423,6 @@ namespace WixToolset.Core
1423 }
1424 }
1425
1459 - if (null == text)
1460 - {
1461 - text = Common.GetInnerText(child);
1462 - }
1463 -
1426 if (!String.IsNullOrEmpty(text) && null != sourceFile)
1427 {
1428 this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(childSourceLineNumbers, child.Name.LocalName, "SourceFile", "Text"));
@@ -1728,11 +1690,6 @@ namespace WixToolset.Core
1690 }
1691 }
1692
1731 - if (null == condition)
1732 - {
1733 - condition = this.Core.GetConditionInnerText(node);
1734 - }
1735 -
1693 if (null == control)
1694 {
1695 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Control"));
src/test/WixToolsetTest.CoreIntegration/TestData/BundleCustomTable/BundleCustomTable.wxs
+12 -12
@@ -10,12 +10,12 @@
10 <BundleAttributeDefinition Id="Column2" />
11
12 <BundleElement>
13 - <BundleAttribute Id="Id">one</BundleAttribute>
14 - <BundleAttribute Id="Column2">two</BundleAttribute>
13 + <BundleAttribute Id="Id" Value="one" />
14 + <BundleAttribute Id="Column2" Value="two" />
15 </BundleElement>
16 <BundleElement>
17 - <BundleAttribute Id="Column2">&lt;</BundleAttribute>
18 - <BundleAttribute Id="Id">&gt;</BundleAttribute>
17 + <BundleAttribute Id="Column2" Value="&lt;" />
18 + <BundleAttribute Id="Id" Value="&gt;" />
19 </BundleElement>
20 </BundleCustomData>
21
@@ -28,23 +28,23 @@
28 <Fragment>
29 <BundleCustomDataRef Id="BundleCustomTableBA">
30 <BundleElement>
31 - <BundleAttribute Id="Id">1</BundleAttribute>
32 - <BundleAttribute Id="Column2">2</BundleAttribute>
31 + <BundleAttribute Id="Id" Value="1" />
32 + <BundleAttribute Id="Column2" Value="2" />
33 </BundleElement>
34 </BundleCustomDataRef>
35
36 <BundleCustomDataRef Id="BundleCustomTableBE">
37 <BundleElement>
38 - <BundleAttribute Id="Id">one</BundleAttribute>
39 - <BundleAttribute Id="Column2">two</BundleAttribute>
38 + <BundleAttribute Id="Id" Value="one" />
39 + <BundleAttribute Id="Column2" Value="two" />
40 </BundleElement>
41 <BundleElement>
42 - <BundleAttribute Id="Column2">&lt;</BundleAttribute>
43 - <BundleAttribute Id="Id">&gt;</BundleAttribute>
42 + <BundleAttribute Id="Column2" Value="&lt;" />
43 + <BundleAttribute Id="Id" Value="&gt;" />
44 </BundleElement>
45 <BundleElement>
46 - <BundleAttribute Id="Id">1</BundleAttribute>
47 - <BundleAttribute Id="Column2">2</BundleAttribute>
46 + <BundleAttribute Id="Id" Value="1" />
47 + <BundleAttribute Id="Column2" Value="2" />
48 </BundleElement>
49 </BundleCustomDataRef>
50
src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/UnscheduledCustomAction.wxs
+1 -1
@@ -27,7 +27,7 @@
27 </InstallUISequence>
28
29 <UI>
30 - <ProgressText Action="CustomAction2">Progess2Text</ProgressText>
30 + <ProgressText Action="CustomAction2" Message="Progess2Text" />
31 </UI>
32 </Fragment>
33 </Wix>
src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs
+8 -8
@@ -9,12 +9,12 @@
9 <Column Id="Column1" Type="string" PrimaryKey="yes" Category="text" Modularize="column" Description="The first custom column." />
10 <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" Description="The custom table's Component reference" />
11 <Row>
12 - <Data Column="Column1">Row1</Data>
13 - <Data Column="Component_">test.txt</Data>
12 + <Data Column="Column1" Value="Row1" />
13 + <Data Column="Component_" Value="test.txt" />
14 </Row>
15 <Row>
16 - <Data Column="Column1">Row2</Data>
17 - <Data Column="Component_">test.txt</Data>
16 + <Data Column="Column1" Value="Row2" />
17 + <Data Column="Component_" Value="test.txt" />
18 </Row>
19 </CustomTable>
20
@@ -22,12 +22,12 @@
22 <Column Id="ColumnA" Type="string" PrimaryKey="yes" />
23 <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" />
24 <Row>
25 - <Data Column="ColumnA">RowA</Data>
26 - <Data Column="Component_">test.txt</Data>
25 + <Data Column="ColumnA" Value="RowA" />
26 + <Data Column="Component_" Value="test.txt" />
27 </Row>
28 <Row>
29 - <Data Column="ColumnA">RowB</Data>
30 - <Data Column="Component_">test.txt</Data>
29 + <Data Column="ColumnA" Value="RowB" />
30 + <Data Column="Component_" Value="test.txt" />
31 </Row>
32 </CustomTable>
33 </Fragment>
src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs
+4 -4
@@ -9,12 +9,12 @@
9 <Column Id="Column1" Type="string" PrimaryKey="yes" />
10 <Column Id="Source" Type="binary" Width="0" />
11 <Row>
12 - <Data Column="Column1">Row1</Data>
13 - <Data Column="Source">file1.txt</Data>
12 + <Data Column="Column1" Value="Row1" />
13 + <Data Column="Source" Value="file1.txt" />
14 </Row>
15 <Row>
16 - <Data Column="Source">SourceDir\file2.txt</Data>
17 - <Data Column="Column1">Row2</Data>
16 + <Data Column="Source" Value="SourceDir\file2.txt" />
17 + <Data Column="Column1" Value="Row2" />
18 </Row>
19 </CustomTable>
20
src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/PackageComponents.wxs
+6 -9
@@ -4,16 +4,13 @@
4 <UI Id="CustomDialog">
5 <Dialog Id="FirstDialog" Width="100" Height="100">
6 <Control Id="Title" Type="Text" X="0" Y="0" Width="90" Height="13" TabSkip="no" Text="FirstDialogTitle" />
7 - <Control Id="Header" Type="Text" X="0" Y="13" Width="90" Height="13" TabSkip="no" Text="FirstDialogHeader">
8 - <Condition Action="hide">Installed</Condition>
9 - <Condition Action="disable">Installed</Condition>
10 - </Control>
7 + <Control Id="Header" Type="Text" X="0" Y="13" Width="90" Height="13" TabSkip="no" Text="FirstDialogHeader"
8 + HideCondition="Installed" DisableCondition="Installed" />
9 </Dialog>
10 <Dialog Id="SecondDialog" Width="100" Height="100">
11 <Control Id="Title" Type="Text" X="0" Y="0" Width="90" Height="13" TabSkip="no" Text="SecondDialogTitle" />
14 - <Control Id="OptionalCheckBox" Type="CheckBox" X="0" Y="13" Width="100" Height="40" Hidden="yes" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]">
15 - <Condition Action="show">WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed</Condition>
16 - </Control>
12 + <Control Id="OptionalCheckBox" Type="CheckBox" X="0" Y="13" Width="100" Height="40" Hidden="yes" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]"
13 + ShowCondition="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed" />
14 </Dialog>
15
16 <InstallUISequence>
@@ -29,8 +26,8 @@
26 <Publish Dialog="FirstDialog" Control="Next" Event="NewDialog" Value="SecondDialog">Installed AND PATCH</Publish>
27
28 <InstallUISequence>
32 - <Show Dialog="FirstDialog" Before="SecondDialog">Installed AND PATCH</Show>
33 - <Show Dialog="SecondDialog" Before="ExecuteAction">NOT Installed</Show>
29 + <Show Dialog="FirstDialog" Before="SecondDialog" Condition="Installed AND PATCH" />
30 + <Show Dialog="SecondDialog" Before="ExecuteAction" Condition="NOT Installed" />
31 </InstallUISequence>
32 </UI>
33 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">