package-data.xsd 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. targetNamespace="https://github.com/chakra-core/ChakraCore"
  5. xmlns="https://github.com/chakra-core/ChakraCore"
  6. elementFormDefault="qualified">
  7. <xs:element name="packageData">
  8. <xs:annotation>
  9. <xs:documentation>The root element of the package data</xs:documentation>
  10. </xs:annotation>
  11. <xs:complexType>
  12. <xs:all>
  13. <xs:element name="commonProperties">
  14. <xs:annotation>
  15. <xs:documentation>
  16. Contains a custom common properties whose values are used to replace $-delimited tokens
  17. (for example, `$description$`) in the `.nuspec` files
  18. </xs:documentation>
  19. </xs:annotation>
  20. <xs:complexType>
  21. <xs:all>
  22. <xs:element name="defaultProperties" minOccurs="0" maxOccurs="1">
  23. <xs:annotation>
  24. <xs:documentation>
  25. Contains a default values for common properties of the packages.
  26. The values of these properties can be overridden by properties of specific packages.
  27. For naming these properties, it is recommended to use the camelCase style.
  28. </xs:documentation>
  29. </xs:annotation>
  30. <xs:complexType>
  31. <xs:sequence>
  32. <xs:any namespace="##any" processContents="skip" minOccurs="0"
  33. maxOccurs="unbounded" />
  34. </xs:sequence>
  35. </xs:complexType>
  36. </xs:element>
  37. <xs:element name="commonMetadataElements" minOccurs="1" maxOccurs="1">
  38. <xs:annotation>
  39. <xs:documentation>
  40. Defines a common metadata of the packages. XML content of this element is
  41. substituted into a `$CommonMetadataElements$` token in the `.nuspec` files.
  42. This XML content is completely static and cannot contain $-delimited tokens.
  43. </xs:documentation>
  44. </xs:annotation>
  45. <xs:complexType>
  46. <xs:sequence>
  47. <xs:any namespace="##any" processContents="skip" minOccurs="0"
  48. maxOccurs="unbounded" />
  49. </xs:sequence>
  50. </xs:complexType>
  51. </xs:element>
  52. <xs:element name="commonFileElements" minOccurs="1" maxOccurs="1">
  53. <xs:annotation>
  54. <xs:documentation>
  55. Defines a list of common files to include in the packages. XML content of this
  56. element is substituted into a `$CommonFileElements$` token in the `.nuspec` files.
  57. This XML content is completely static and cannot contain $-delimited tokens.
  58. </xs:documentation>
  59. </xs:annotation>
  60. <xs:complexType>
  61. <xs:sequence>
  62. <xs:element name="file" minOccurs="0" maxOccurs="unbounded">
  63. <xs:annotation>
  64. <xs:documentation>File or files to include in the package</xs:documentation>
  65. </xs:annotation>
  66. <xs:complexType>
  67. <xs:attribute name="src" type="requiredString_type" use="required">
  68. <xs:annotation>
  69. <xs:documentation>
  70. The location of the file or files to include relative to the `.nuspec`
  71. file
  72. </xs:documentation>
  73. </xs:annotation>
  74. </xs:attribute>
  75. <xs:attribute name="target" type="xs:string" use="optional">
  76. <xs:annotation>
  77. <xs:documentation>
  78. Relative path to the directory within the package where the files will
  79. be placed
  80. </xs:documentation>
  81. </xs:annotation>
  82. </xs:attribute>
  83. <xs:attribute name="exclude" type="xs:string" use="optional">
  84. <xs:annotation>
  85. <xs:documentation>
  86. The file or files to exclude within the `src` location
  87. </xs:documentation>
  88. </xs:annotation>
  89. </xs:attribute>
  90. </xs:complexType>
  91. </xs:element>
  92. </xs:sequence>
  93. </xs:complexType>
  94. </xs:element>
  95. </xs:all>
  96. </xs:complexType>
  97. </xs:element>
  98. <xs:element name="packages">
  99. <xs:complexType>
  100. <xs:annotation>
  101. <xs:documentation>Defines a list of data about the packages</xs:documentation>
  102. </xs:annotation>
  103. <xs:sequence>
  104. <xs:element name="package" minOccurs="0" maxOccurs="unbounded">
  105. <xs:annotation>
  106. <xs:documentation>
  107. Data about the package on basis of which the `.nupkg` file are created
  108. </xs:documentation>
  109. </xs:annotation>
  110. <xs:complexType>
  111. <xs:all>
  112. <xs:element name="properties" minOccurs="0" maxOccurs="1">
  113. <xs:annotation>
  114. <xs:documentation>
  115. Contains a custom properties of the package that are used to replace
  116. $-delimited tokens (for example, `$tags$`) in the `.nuspec` files.
  117. These properties can override common properties. The property value can
  118. contain a Mustache tag with special token name (`{{{base}}}`) that is replaced
  119. with the value of overridable common property.
  120. </xs:documentation>
  121. </xs:annotation>
  122. <xs:complexType>
  123. <xs:sequence>
  124. <xs:any namespace="##any" processContents="skip" minOccurs="0"
  125. maxOccurs="unbounded" />
  126. </xs:sequence>
  127. </xs:complexType>
  128. </xs:element>
  129. <xs:element name="preprocessableFiles" minOccurs="0" maxOccurs="1">
  130. <xs:annotation>
  131. <xs:documentation>
  132. Defines a list of files that must be processed before creating a `.nupkg`
  133. files
  134. </xs:documentation>
  135. </xs:annotation>
  136. <xs:complexType>
  137. <xs:sequence>
  138. <xs:element name="file" minOccurs="0" maxOccurs="unbounded">
  139. <xs:annotation>
  140. <xs:documentation>
  141. Information about the file that must be processed before creating a
  142. `.nupkg` file.
  143. </xs:documentation>
  144. </xs:annotation>
  145. <xs:complexType>
  146. <xs:attribute name="src" type="requiredString_type">
  147. <xs:annotation>
  148. <xs:documentation>
  149. The location of the pre-processable file relative to the XML file
  150. with package data. Pre-processable file is a primitive Mustache
  151. template.
  152. </xs:documentation>
  153. </xs:annotation>
  154. </xs:attribute>
  155. <xs:attribute name="target" type="requiredString_type">
  156. <xs:annotation>
  157. <xs:documentation>
  158. The location of the target file relative to the XML file with
  159. package data. Target file is created based on primitive Mustache
  160. template and properties of the package. The path to target file can
  161. contain a Mustache tags that are replaced during processing with the
  162. values of corresponding package properties.
  163. </xs:documentation>
  164. </xs:annotation>
  165. </xs:attribute>
  166. </xs:complexType>
  167. </xs:element>
  168. </xs:sequence>
  169. </xs:complexType>
  170. </xs:element>
  171. </xs:all>
  172. <xs:attribute name="id" type="requiredString_type" use="required">
  173. <xs:annotation>
  174. <xs:documentation>Unique identifier for the package</xs:documentation>
  175. </xs:annotation>
  176. </xs:attribute>
  177. <xs:attribute name="nuspecFile" type="requiredString_type" use="required">
  178. <xs:annotation>
  179. <xs:documentation>
  180. The location of the `.nuspec` file relative to the XML file with package data
  181. </xs:documentation>
  182. </xs:annotation>
  183. </xs:attribute>
  184. </xs:complexType>
  185. </xs:element>
  186. </xs:sequence>
  187. </xs:complexType>
  188. </xs:element>
  189. </xs:all>
  190. </xs:complexType>
  191. </xs:element>
  192. <xs:simpleType name="requiredString_type">
  193. <xs:restriction base="xs:string">
  194. <xs:minLength value="1" />
  195. </xs:restriction>
  196. </xs:simpleType>
  197. </xs:schema>