aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Data/WindowsInstaller
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2017-12-19 12:24:16 -0800
committerRob Mensching <rob@firegiant.com>2017-12-19 12:24:16 -0800
commitf680e915f065026efd0301a76fd524f87b8c5f06 (patch)
tree63b6a8d7b799b10d77e133209041a809f4f3d144 /src/WixToolset.Data/WindowsInstaller
parent77dc8cd1acd5332aa0cb077c7e87d0678756969b (diff)
downloadwix-f680e915f065026efd0301a76fd524f87b8c5f06.tar.gz
wix-f680e915f065026efd0301a76fd524f87b8c5f06.tar.bz2
wix-f680e915f065026efd0301a76fd524f87b8c5f06.zip
Simplify message handling
Diffstat (limited to 'src/WixToolset.Data/WindowsInstaller')
-rw-r--r--src/WixToolset.Data/WindowsInstaller/Output.cs2
-rw-r--r--src/WixToolset.Data/WindowsInstaller/Pdb.cs2
-rw-r--r--src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs2
-rw-r--r--src/WixToolset.Data/WindowsInstaller/Table.cs2
-rw-r--r--src/WixToolset.Data/WindowsInstaller/TableDefinition.cs2
-rw-r--r--src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs2
-rw-r--r--src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs2
-rw-r--r--src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd66
-rw-r--r--src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd143
-rw-r--r--src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd66
-rw-r--r--src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd32
11 files changed, 314 insertions, 7 deletions
diff --git a/src/WixToolset.Data/WindowsInstaller/Output.cs b/src/WixToolset.Data/WindowsInstaller/Output.cs
index 6164622d..7f2990f4 100644
--- a/src/WixToolset.Data/WindowsInstaller/Output.cs
+++ b/src/WixToolset.Data/WindowsInstaller/Output.cs
@@ -165,7 +165,7 @@ namespace WixToolset.Data.WindowsInstaller
165 165
166 if (!suppressVersionCheck && null != version && !Output.CurrentVersion.Equals(version)) 166 if (!suppressVersionCheck && null != version && !Output.CurrentVersion.Equals(version))
167 { 167 {
168 throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixOutput", version.ToString(), Output.CurrentVersion.ToString())); 168 throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixOutput", version.ToString(), Output.CurrentVersion.ToString()));
169 } 169 }
170 170
171 // loop through the rest of the xml building up the Output object 171 // loop through the rest of the xml building up the Output object
diff --git a/src/WixToolset.Data/WindowsInstaller/Pdb.cs b/src/WixToolset.Data/WindowsInstaller/Pdb.cs
index 41700b0d..d3fea0fe 100644
--- a/src/WixToolset.Data/WindowsInstaller/Pdb.cs
+++ b/src/WixToolset.Data/WindowsInstaller/Pdb.cs
@@ -107,7 +107,7 @@ namespace WixToolset.Data.WindowsInstaller
107 107
108 if (!suppressVersionCheck && null != version && !Pdb.CurrentVersion.Equals(version)) 108 if (!suppressVersionCheck && null != version && !Pdb.CurrentVersion.Equals(version))
109 { 109 {
110 throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixPdb", version.ToString(), Pdb.CurrentVersion.ToString())); 110 throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixPdb", version.ToString(), Pdb.CurrentVersion.ToString()));
111 } 111 }
112 112
113 // loop through the rest of the pdb building up the Output object 113 // loop through the rest of the pdb building up the Output object
diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs
index 7fc34b3d..673d2315 100644
--- a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs
+++ b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs
@@ -179,7 +179,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows
179 179
180 if (compressedFlag && noncompressedFlag) 180 if (compressedFlag && noncompressedFlag)
181 { 181 {
182 throw new WixException(WixDataErrors.IllegalFileCompressionAttributes(this.SourceLineNumbers)); 182 throw new WixException(ErrorMessages.IllegalFileCompressionAttributes(this.SourceLineNumbers));
183 } 183 }
184 else if (compressedFlag) 184 else if (compressedFlag)
185 { 185 {
diff --git a/src/WixToolset.Data/WindowsInstaller/Table.cs b/src/WixToolset.Data/WindowsInstaller/Table.cs
index 7fcc1b31..ccdcb40b 100644
--- a/src/WixToolset.Data/WindowsInstaller/Table.cs
+++ b/src/WixToolset.Data/WindowsInstaller/Table.cs
@@ -323,7 +323,7 @@ namespace WixToolset.Data.WindowsInstaller
323 323
324 if (primaryKeys.TryGetValue(primaryKey, out var collisionSourceLineNumber)) 324 if (primaryKeys.TryGetValue(primaryKey, out var collisionSourceLineNumber))
325 { 325 {
326 throw new WixException(WixDataErrors.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name)); 326 throw new WixException(ErrorMessages.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name));
327 } 327 }
328 328
329 primaryKeys.Add(primaryKey, row.SourceLineNumbers); 329 primaryKeys.Add(primaryKey, row.SourceLineNumbers);
diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs
index 518f0926..2fb655e5 100644
--- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs
+++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs
@@ -175,7 +175,7 @@ namespace WixToolset.Data.WindowsInstaller
175 175
176 if (!unreal && !bootstrapperApplicationData && !hasPrimaryKeyColumn) 176 if (!unreal && !bootstrapperApplicationData && !hasPrimaryKeyColumn)
177 { 177 {
178 throw new WixException(WixDataErrors.RealTableMissingPrimaryKeyColumn(SourceLineNumber.CreateFromUri(reader.BaseURI), name)); 178 throw new WixException(ErrorMessages.RealTableMissingPrimaryKeyColumn(SourceLineNumber.CreateFromUri(reader.BaseURI), name));
179 } 179 }
180 180
181 if (!done) 181 if (!done)
diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs
index 0954e9de..619a5206 100644
--- a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs
+++ b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs
@@ -59,7 +59,7 @@ namespace WixToolset.Data.WindowsInstaller
59 { 59 {
60 if (!this.collection.TryGetValue(tableName, out var table)) 60 if (!this.collection.TryGetValue(tableName, out var table))
61 { 61 {
62 throw new WixMissingTableDefinitionException(WixDataErrors.MissingTableDefinition(tableName)); 62 throw new WixMissingTableDefinitionException(ErrorMessages.MissingTableDefinition(tableName));
63 } 63 }
64 64
65 return table; 65 return table;
diff --git a/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs b/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs
index 4b15c0e5..9f7e5fa8 100644
--- a/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs
+++ b/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs
@@ -14,7 +14,7 @@ namespace WixToolset.Data.WindowsInstaller
14 /// Instantiate new WixMissingTableDefinitionException. 14 /// Instantiate new WixMissingTableDefinitionException.
15 /// </summary> 15 /// </summary>
16 /// <param name="error">Localized error information.</param> 16 /// <param name="error">Localized error information.</param>
17 public WixMissingTableDefinitionException(MessageEventArgs error) 17 public WixMissingTableDefinitionException(Message error)
18 : base(error) 18 : base(error)
19 { 19 {
20 } 20 }
diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd
new file mode 100644
index 00000000..a4504c01
--- /dev/null
+++ b/src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd
@@ -0,0 +1,66 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 targetNamespace="http://wixtoolset.org/schemas/v4/wixlib"
7 xmlns="http://wixtoolset.org/schemas/v4/wixlib"
8 xmlns:loc="http://wixtoolset.org/schemas/v4/wxl"
9 xmlns:objs="http://wixtoolset.org/schemas/v4/wixobj">
10 <xs:annotation>
11 <xs:documentation>
12 Schema for describing WiX Library files (.wixlib).
13 </xs:documentation>
14 </xs:annotation>
15
16 <xs:import namespace="http://wixtoolset.org/schemas/v4/wixobj" schemaLocation="objects.xsd" />
17
18 <xs:element name="wixLibrary">
19 <xs:complexType>
20 <xs:sequence>
21 <xs:element ref="localization" minOccurs="0" maxOccurs="unbounded" />
22 <xs:element ref="objs:section" minOccurs="0" maxOccurs="unbounded" />
23 </xs:sequence>
24
25 <xs:attribute name="id" type="xs:string" use="required" />
26 <xs:attribute name="version" type="xs:string" use="required">
27 <xs:annotation>
28 <xs:documentation>Version of WiX used to create this library file</xs:documentation>
29 </xs:annotation>
30 </xs:attribute>
31 </xs:complexType>
32 </xs:element>
33
34 <xs:element name="localization">
35 <xs:complexType>
36 <xs:sequence>
37 <xs:element ref="string" minOccurs="0" maxOccurs="unbounded" />
38 <xs:element ref="ui" minOccurs="0" maxOccurs="unbounded" />
39 </xs:sequence>
40
41 <xs:attribute name="codepage" type="xs:string" use="required" />
42 <xs:attribute name="culture" type="xs:string" />
43 </xs:complexType>
44 </xs:element>
45
46 <xs:element name="string">
47 <xs:complexType mixed="true">
48 <xs:attribute name="id" type="xs:string" use="required" />
49 <xs:attribute name="overridable" type="xs:string" />
50 </xs:complexType>
51 </xs:element>
52
53 <xs:element name="ui">
54 <xs:complexType>
55 <xs:attribute name="dialog" type="xs:string" />
56 <xs:attribute name="control" type="xs:string" />
57 <xs:attribute name="x" type="xs:int" />
58 <xs:attribute name="y" type="xs:int" />
59 <xs:attribute name="width" type="xs:int" />
60 <xs:attribute name="height" type="xs:int" />
61 <xs:attribute name="rightToLeft" type="xs:string" />
62 <xs:attribute name="rightAligned" type="xs:string" />
63 <xs:attribute name="leftScroll" type="xs:string" />
64 </xs:complexType>
65 </xs:element>
66</xs:schema>
diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd
new file mode 100644
index 00000000..5d95a59c
--- /dev/null
+++ b/src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd
@@ -0,0 +1,143 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 targetNamespace="http://wixtoolset.org/schemas/v4/wixobj"
7 xmlns="http://wixtoolset.org/schemas/v4/wixobj">
8 <xs:annotation>
9 <xs:documentation>
10 Schema for describing WiX Object files (.wixobj).
11 </xs:documentation>
12 </xs:annotation>
13
14 <xs:element name="wixObject">
15 <xs:complexType>
16 <xs:sequence minOccurs="0" maxOccurs="unbounded">
17 <xs:element ref="section" />
18 </xs:sequence>
19 <xs:attribute name="id" type="xs:string" use="required" />
20 <xs:attribute name="version" type="xs:string" use="required">
21 <xs:annotation>
22 <xs:documentation>Version of WiX used to create this object file.</xs:documentation>
23 </xs:annotation>
24 </xs:attribute>
25 </xs:complexType>
26 </xs:element>
27
28 <xs:element name="section">
29 <xs:complexType>
30 <xs:sequence>
31 <xs:element ref="table" minOccurs="0" maxOccurs="unbounded" />
32 </xs:sequence>
33 <xs:attribute name="id" type="xs:string">
34 <xs:annotation>
35 <xs:documentation>Identifier for section (optional for Fragments)</xs:documentation>
36 </xs:annotation>
37 </xs:attribute>
38 <xs:attribute name="type" type="SectionType" use="required">
39 <xs:annotation>
40 <xs:documentation>Type of section</xs:documentation>
41 </xs:annotation>
42 </xs:attribute>
43 <xs:attribute name="codepage" type="xs:integer" use="optional">
44 <xs:annotation>
45 <xs:documentation>Codepage for output file, only valid on entry sections.</xs:documentation>
46 </xs:annotation>
47 </xs:attribute>
48 </xs:complexType>
49 </xs:element>
50
51 <xs:element name="table">
52 <xs:complexType>
53 <xs:sequence minOccurs="0" maxOccurs="unbounded">
54 <xs:element ref="row" />
55 </xs:sequence>
56 <xs:attribute name="name" type="TableNameType" use="required">
57 <xs:annotation>
58 <xs:documentation>Name of table in Windows Installer database</xs:documentation>
59 </xs:annotation>
60 </xs:attribute>
61 <xs:attribute name="op">
62 <xs:simpleType>
63 <xs:restriction base="xs:string">
64 <xs:enumeration value="add" />
65 <xs:enumeration value="drop" />
66 </xs:restriction>
67 </xs:simpleType>
68 </xs:attribute>
69 </xs:complexType>
70 </xs:element>
71
72 <xs:element name="row">
73 <xs:annotation>
74 <xs:documentation>Row in a table</xs:documentation>
75 </xs:annotation>
76 <xs:complexType>
77 <xs:sequence maxOccurs="unbounded">
78 <xs:element ref="field" />
79 </xs:sequence>
80 <xs:attribute name="access">
81 <xs:simpleType>
82 <xs:restriction base="xs:string">
83 <xs:enumeration value="public" />
84 <xs:enumeration value="internal" />
85 <xs:enumeration value="protected" />
86 <xs:enumeration value="private" />
87 </xs:restriction>
88 </xs:simpleType>
89 </xs:attribute>
90 <xs:attribute name="op">
91 <xs:simpleType>
92 <xs:restriction base="xs:string">
93 <xs:enumeration value="add" />
94 <xs:enumeration value="delete" />
95 <xs:enumeration value="modify" />
96 </xs:restriction>
97 </xs:simpleType>
98 </xs:attribute>
99 <xs:attribute name="redundant" type="YesNoType" />
100 <xs:attribute name="sectionId" type="xs:string" />
101 <xs:attribute name="sourceLineNumber" type="xs:string" />
102 </xs:complexType>
103 </xs:element>
104
105 <xs:element name="field">
106 <xs:annotation>
107 <xs:documentation>Data for a particular field in a row.</xs:documentation>
108 </xs:annotation>
109 <xs:complexType mixed="true">
110 <xs:attribute name="cabinetFileId" type="xs:string" />
111 <xs:attribute name="modified" type="YesNoType" />
112 <xs:attribute name="previousData" type="xs:string" />
113 <xs:attribute name="unresolvedData" type="xs:string" />
114 <xs:attribute name="unresolvedPreviousData" type="xs:string" />
115 <xs:attribute name="previousCabinetFileId" type="xs:string" />
116 </xs:complexType>
117 </xs:element>
118
119 <xs:simpleType name="SectionType">
120 <xs:restriction base="xs:NMTOKEN">
121 <xs:enumeration value="bundle"/>
122 <xs:enumeration value="fragment" />
123 <xs:enumeration value="module" />
124 <xs:enumeration value="product" />
125 <xs:enumeration value="patchCreation" />
126 <xs:enumeration value="patch" />
127 </xs:restriction>
128 </xs:simpleType>
129
130 <xs:simpleType name="TableNameType">
131 <xs:restriction base="xs:string">
132 <xs:minLength value="1" />
133 <xs:maxLength value="62" />
134 </xs:restriction>
135 </xs:simpleType>
136
137 <xs:simpleType name="YesNoType">
138 <xs:restriction base="xs:NMTOKEN">
139 <xs:enumeration value="yes" />
140 <xs:enumeration value="no" />
141 </xs:restriction>
142 </xs:simpleType>
143</xs:schema>
diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd
new file mode 100644
index 00000000..00e20f12
--- /dev/null
+++ b/src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd
@@ -0,0 +1,66 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 targetNamespace="http://wixtoolset.org/schemas/v4/wixout"
7 xmlns="http://wixtoolset.org/schemas/v4/wixout"
8 xmlns:objs="http://wixtoolset.org/schemas/v4/wixobj"
9 xmlns:tbls="http://wixtoolset.org/schemas/v4/wi/tables">
10 <xs:annotation>
11 <xs:documentation>
12 Schema for describing WiX Output files (.wixout).
13 </xs:documentation>
14 </xs:annotation>
15
16 <xs:import namespace="http://wixtoolset.org/schemas/v4/wixobj" schemaLocation="objects.xsd" />
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wi/tables" schemaLocation="tables.xsd" />
18
19 <xs:element name="wixOutput">
20 <xs:complexType>
21 <xs:sequence>
22 <xs:element ref="tbls:tableDefinitions" />
23 <xs:element ref="objs:table" maxOccurs="unbounded" />
24 <xs:element ref="subStorage" minOccurs="0" maxOccurs="unbounded" />
25 </xs:sequence>
26 <xs:attribute name="codepage" type="xs:unsignedInt">
27 <xs:annotation>
28 <xs:documentation>Codepage of the output.</xs:documentation>
29 </xs:annotation>
30 </xs:attribute>
31 <xs:attribute name="type" use="required">
32 <xs:annotation>
33 <xs:documentation>Type of the output.</xs:documentation>
34 </xs:annotation>
35 <xs:simpleType>
36 <xs:restriction base="xs:NMTOKEN">
37 <xs:enumeration value="Bundle" />
38 <xs:enumeration value="Module" />
39 <xs:enumeration value="Patch" />
40 <xs:enumeration value="PatchCreation" />
41 <xs:enumeration value="Product" />
42 <xs:enumeration value="Transform" />
43 </xs:restriction>
44 </xs:simpleType>
45 </xs:attribute>
46 <xs:attribute name="version" type="xs:string" use="required">
47 <xs:annotation>
48 <xs:documentation>Version of WiX used to create this output file.</xs:documentation>
49 </xs:annotation>
50 </xs:attribute>
51 </xs:complexType>
52 </xs:element>
53
54 <xs:element name="subStorage">
55 <xs:complexType>
56 <xs:sequence minOccurs="1" maxOccurs="1">
57 <xs:element ref="wixOutput" />
58 </xs:sequence>
59 <xs:attribute name="name" type="xs:string">
60 <xs:annotation>
61 <xs:documentation>Name of the substorage.</xs:documentation>
62 </xs:annotation>
63 </xs:attribute>
64 </xs:complexType>
65 </xs:element>
66</xs:schema>
diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd
new file mode 100644
index 00000000..c1d1756d
--- /dev/null
+++ b/src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd
@@ -0,0 +1,32 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 targetNamespace="http://wixtoolset.org/schemas/v4/wixpdb"
7 xmlns="http://wixtoolset.org/schemas/v4/wixpdb"
8 xmlns:outs="http://wixtoolset.org/schemas/v4/wixout">
9 <xs:annotation>
10 <xs:documentation>
11 Schema for describing WiX Pdb files (.wixpdb).
12 </xs:documentation>
13 </xs:annotation>
14
15 <xs:import namespace="http://wixtoolset.org/schemas/v4/wixobj" schemaLocation="objects.xsd" />
16 <xs:import namespace="http://wixtoolset.org/schemas/v4/wixout" schemaLocation="outputs.xsd" />
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wi/tables" schemaLocation="tables.xsd" />
18
19 <xs:element name="wixPdb">
20 <xs:complexType>
21 <xs:sequence>
22 <xs:element ref="outs:wixOutput" minOccurs="0" maxOccurs="unbounded" />
23 </xs:sequence>
24
25 <xs:attribute name="version" type="xs:string" use="required">
26 <xs:annotation>
27 <xs:documentation>Version of WiX used to create this pdb file</xs:documentation>
28 </xs:annotation>
29 </xs:attribute>
30 </xs:complexType>
31 </xs:element>
32</xs:schema>