/usr/lib/mono/xbuild/12.0/bin/MSBuild/Microsoft.Build.Core.xsd is in mono-xbuild 3.2.8+dfsg-4ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 | <?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/developer/msbuild/2003" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!-- ======================================================================================= -->
<xs:element name="Project">
<xs:complexType>
<xs:sequence>
<xs:group ref="msb:ProjectLevelTagExceptTargetOrImportType" minOccurs="0" maxOccurs="unbounded"/>
<!-- must be at least one Target or Import tag-->
<xs:group ref="msb:TargetOrImportType"/>
<xs:group ref="msb:ProjectLevelTagType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="DefaultTargets" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of one or more targets that will be built if no targets are otherwise specified</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<!-- ======================================================================================= -->
<xs:group name="ProjectLevelTagExceptTargetOrImportType">
<xs:choice>
<xs:element name="PropertyGroup" type="msb:PropertyGroupType"/>
<xs:element name="ItemGroup" type="msb:ItemGroupType"/>
<xs:element name="Choose" type="msb:ChooseType"/>
<xs:element name="Error" type="msb:WarningErrorOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs an Error event</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Warning" type="msb:WarningErrorOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs a Warning event</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Message" type="msb:MessageOutsideTargetType"/>
<xs:element name="UsingTask" type="msb:UsingTaskType"/>
<xs:element name="ProjectExtensions" type="msb:ProjectExtensionsType"/>
</xs:choice>
</xs:group>
<!-- ======================================================================================= -->
<xs:group name="ProjectLevelTagType">
<xs:choice>
<xs:element name="PropertyGroup" type="msb:PropertyGroupType"/>
<xs:element name="ItemGroup" type="msb:ItemGroupType"/>
<xs:element name="Choose" type="msb:ChooseType"/>
<xs:element name="Error" type="msb:WarningErrorOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs an Error event</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Warning" type="msb:WarningErrorOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs a Warning event</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Message" type="msb:MessageOutsideTargetType"/>
<xs:element name="UsingTask" type="msb:UsingTaskType"/>
<xs:element name="Target" type="msb:TargetType"/>
<xs:element name="Import" type="msb:ImportType"/>
<xs:element name="ProjectExtensions" type="msb:ProjectExtensionsType"/>
</xs:choice>
</xs:group>
<!-- ======================================================================================= -->
<xs:group name="TargetOrImportType">
<xs:choice>
<xs:element name="Target" type="msb:TargetType"/>
<xs:element name="Import" type="msb:ImportType"/>
</xs:choice>
</xs:group>
<!-- ======================================================================================= -->
<xs:complexType name="TargetType">
<xs:annotation>
<xs:documentation>Groups tasks into a section of the build process</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="msb:Task"/>
</xs:choice>
<xs:element name="OnError" type="msb:OnErrorType" minOccurs="0" maxOccurs="unbounded"/>
<!-- no elements are allowed under Target after an OnError element-->
</xs:sequence>
<xs:attribute name="Name" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Name of the target</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DependsOnTargets" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of targets that should be run before this target</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Inputs" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of files that form inputs into this target. Their timestamps will be compared with the timestamps of files in Outputs to determine whether the Target is up to date</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Outputs" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of files that form outputs into this target. Their timestamps will be compared with the timestamps of files in Inputs to determine whether the Target is up to date</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the Target and the targets it depends on should be run</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="PropertyGroupType">
<xs:annotation>
<xs:documentation>Groups property definitions</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="msb:Property"/>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the PropertyGroup should be used</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="ItemGroupType">
<xs:annotation>
<xs:documentation>Groups item list definitions</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="msb:Item"/>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the ItemGroup should be used</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="ChooseType">
<xs:annotation>
<xs:documentation>Groups When and Otherwise elements</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="When" type="msb:WhenType" maxOccurs="unbounded"/>
<xs:element name="Otherwise" type="msb:OtherwiseType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="WhenType">
<xs:annotation>
<xs:documentation>Groups PropertyGroup and/or ItemGroup elements</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs:element name="PropertyGroup" type="msb:PropertyGroupType"/>
<xs:element name="ItemGroup" type="msb:ItemGroupType"/>
<xs:element name="Choose" type="msb:ChooseType"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the child PropertyGroups and/or ItemGroups should be used</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="OtherwiseType">
<xs:annotation>
<xs:documentation>Groups PropertyGroup and/or ItemGroup elements that are used if no Conditions on sibling When elements evaluate to true</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs:element name="PropertyGroup" type="msb:PropertyGroupType"/>
<xs:element name="ItemGroup" type="msb:ItemGroupType"/>
<xs:element name="Choose" type="msb:ChooseType"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="OnErrorType">
<xs:annotation>
<xs:documentation>Specifies targets to execute in the event of a recoverable error</xs:documentation>
</xs:annotation>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the targets should be executed</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExecuteTargets" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Semi-colon separated list of targets to execute</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="MessageOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs an informational Message event, with an optional Importance</xs:documentation>
</xs:annotation>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the Message should be logged</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Importance" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional priority level. Allowed values are Low, Normal (default), and High</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Text" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Text to log</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="WarningErrorOutsideTargetType">
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the text should be logged</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Text" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Text to log</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="UsingTaskType">
<xs:annotation>
<xs:documentation>Declares where to load a task that will be used in the project</xs:documentation>
</xs:annotation>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the declaration should be evaluated</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AssemblyName" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional name of assembly containing the task. Either AssemblyName or AssemblyFile must be used</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AssemblyFile" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional path to assembly containing the task. Either AssemblyName or AssemblyFile must be used</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TaskName" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Name of task class in the assembly</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="ImportType">
<xs:annotation>
<xs:documentation>Declares that the contents of another project file should be inserted at this location</xs:documentation>
</xs:annotation>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the import should occur</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Project" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Project file to import</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="ProjectExtensionsType" mixed="true">
<xs:annotation>
<xs:documentation>Optional section used by MSBuild hosts, that may contain arbitrary XML content that is ignored by MSBuild itself</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any processContents="skip"/>
</xs:sequence>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:element name="Item" type="msb:SimpleItemType" abstract="true"/>
<!-- ======================================================================================= -->
<!-- convenience type for items that have no meta-data-->
<xs:complexType name="SimpleItemType">
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the items should be evaluated</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Include" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Semi-colon separated list of files (wildcards are allowed) or other item names to include in this item list</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Exclude" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Semi-colon separated list of files (wildcards are allowed) or other item names to exclude from the Include list</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<!-- general utility type allowing an item type to be defined but not its child meta-data-->
<xs:complexType name="GenericItemType">
<xs:complexContent>
<xs:extension base="msb:SimpleItemType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="##any" processContents="skip"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ======================================================================================= -->
<!-- no type declared on this abstract element, so either a simple or complex type can be substituted for it.-->
<xs:element name="Property" abstract="true"/>
<!-- ======================================================================================= -->
<!-- convenience type for properties that just want to allow text and no elements in them-->
<xs:complexType name="StringPropertyType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the property should be evaluated</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!-- ======================================================================================= -->
<!-- general utility type allowing text and/or elements inside-->
<xs:complexType name="GenericPropertyType" mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="##any" processContents="skip"/>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the property should be evaluated</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:element name="Task" type="msb:TaskType" abstract="true"/>
<!-- ======================================================================================= -->
<xs:complexType name="TaskType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Output">
<xs:annotation>
<xs:documentation>Optional element specifying a specific task output to be gathered</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="TaskParameter" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Task parameter to gather. Matches the name of a .NET Property on the task class that has an [Output] attribute</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ItemName" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional name of an item list to put the gathered outputs into. Either ItemName or PropertyName must be specified</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PropertyName" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional name of a property to put the gathered output into. Either PropertyName or ItemName must be specified</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the output should be gathered</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the task should be executed</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ContinueOnError" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional boolean indicating whether a recoverable task error should be ignored. Default false</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- We don't need the anyAttribute here because other types deriving from this type will add the right attributes.-->
</xs:complexType>
<!-- ======================================================================================= -->
<!-- XSD considers an empty-valued attribute to satisfy use="required", but we want it to have a non-empty value in most cases, hence this utility type. -->
<xs:simpleType name="non_empty_string">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
|