Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

421 lines
15 KiB

  1. <Schema name="VssWriterMetadataInfo"
  2. xmlns="urn:schemas-microsoft-com:xml-data"
  3. xmlns:dt="urn:schemas-microsoft-com:datatypes">
  4. <AttributeType name="filespec" dt:type="string" required="yes">
  5. <description>
  6. File specification. Can include wildcard characters ? and *
  7. </description>
  8. </AttributeType>
  9. <AttributeType name="path" dt:type="string" required="yes">
  10. <description>
  11. Path to a file. The path can include environment variables or
  12. values extracted from registry keys.
  13. </description>
  14. </AttributeType>
  15. <AttributeType name="recursive" dt:type="enumeration"
  16. dt:values="yes no" default="no">
  17. <description>
  18. Is path specified recursive or limited to the directory that is specified.
  19. </description>
  20. </AttributeType>
  21. <AttributeType name="alternatePath" dt:type="string" required="no">
  22. <description>
  23. Alternate path in which to find the file. Files in a file group may
  24. have been copied to an alternative location by the writer. Backup should
  25. pick up the files from the alternative location instead of the original
  26. location but should restore the files to their original location
  27. </description>
  28. </AttributeType>
  29. <AttributeType name="logicalPath" dt:type="string" required="no">
  30. <description>
  31. Logical path for a database or file group. This logical name uses backslash
  32. as separators to form a logical namespace hierarchy
  33. </description>
  34. </AttributeType>
  35. <AttributeType name="componentName" dt:type="string" required="yes">
  36. <description>
  37. Name used to identify a database or file group. May be qualified by a
  38. logical path.
  39. </description>
  40. </AttributeType>
  41. <AttributeType name="restoreMetadata" dt:type="enumeration"
  42. dt:values="yes no" default="no">
  43. <description>
  44. Restore metadata exists for this database or file group. Backup
  45. application should capture the restore metadata and pass it to the
  46. writer on restore.
  47. </description>
  48. </AttributeType>
  49. <AttributeType name="notifyOnBackupComplete" dt:type="enumeration"
  50. dt:values="yes no" default="no">
  51. <description>
  52. Writer should be notified when backup is complete whether this
  53. database or file group was successfully backed up or not.
  54. </description>
  55. </AttributeType>
  56. <AttributeType name="caption" dt:type="string" required="no">
  57. <description>
  58. Textual Description of database or file group
  59. </description>
  60. </AttributeType>
  61. <AttributeType name="icon" dt:type="string" required="no">
  62. <description>
  63. Icon associated with database or file group
  64. </description>
  65. </AttributeType>
  66. <AttributeType name="selectable" dt:type="enumeration"
  67. dt:values="yes no" default="yes">
  68. <description>
  69. Is this component selectable for backup or is it always backed up.
  70. If no, then the component is always backed up if any other components of
  71. the application/service are backed up. If yes, then the
  72. component may be selectively backed up.
  73. </description>
  74. </AttributeType>
  75. <AttributeType name="selectableForRestore" dt:type="enumeration"
  76. dt:values="yes no" default="no">
  77. <description>
  78. Is this component selectable for restore
  79. </description>
  80. </AttributeType>
  81. <AttributeType name="version" dt:type="enumeration" dt:values="1.0 1.1 1.2 1.3" required="yes">
  82. <description>
  83. Version of a specific document
  84. </description>
  85. </AttributeType>
  86. <AttributeType name="writerId" dt:type="uuid" required="yes">
  87. <description>
  88. Unique id to identify the writer. Note that this identifies the
  89. writer class rather than a specific instance of the writer.
  90. </description>
  91. </AttributeType>
  92. <AttributeType name="instanceId" dt:type="uuid" required="no">
  93. <description>
  94. Unique id identifying the instance of a writer during backup. It
  95. has no meaning during restore.
  96. </description>
  97. </AttributeType>
  98. <AttributeType name="componentFlags" dt:type="number" default="0">
  99. <description>
  100. Contains extra flags that describe the component being backed up.
  101. </description>
  102. </AttributeType>
  103. <AttributeType name="backupSchema" dt:type="number" default="0">
  104. <description>
  105. Describes the writer capabilities and how different types of backup are performed.
  106. </description>
  107. </AttributeType>
  108. <AttributeType name="filespecBackupType" dt:type="number" default="0">
  109. <description>
  110. Describes how backup should be performed on a specific filespec.
  111. </description>
  112. </AttributeType>
  113. <ElementType name="WRITER_METADATA" content="eltOnly" model="open" order="one">
  114. <description>
  115. Information used by Backup application to backup/restore data
  116. </description>
  117. <attribute type="version" />
  118. <attribute type="backupSchema" />
  119. <element type="IDENTIFICATION" />
  120. <element type="BACKUP_LOCATIONS" minOccurs="0" />
  121. <element type="RESTORE_METHOD" minOccurs="0" />
  122. </ElementType>
  123. <ElementType name="IDENTIFICATION" content="empty" model="closed">
  124. <description>
  125. Identification of a service/application backing up data
  126. </description>
  127. <AttributeType name="friendlyName" dt:type="string" required="yes">
  128. <description>
  129. Friendly name used to describe the service or application.
  130. </description>
  131. </AttributeType>
  132. <AttributeType name="usage" dt:type="enumeration"
  133. dt:values="USER_DATA BOOTABLE_SYSTEM_STATE SYSTEM_SERVICE OTHER"
  134. default="OTHER">
  135. <description>
  136. How the data associated with the writer is used. For now we
  137. distinguish user data and system state.
  138. </description>
  139. </AttributeType>
  140. <AttributeType name="dataSource" dt:type="enumeration"
  141. dt:values="TRANSACTION_DB NONTRANSACTIONAL_DB OTHER"
  142. default="OTHER">
  143. <description>
  144. Description of the nature of the data manager. Currently only
  145. databases are identified
  146. </description>
  147. </AttributeType>
  148. <attribute type="instanceId" required="yes" />
  149. <attribute type="writerId" />
  150. <attribute type="friendlyName" />
  151. <attribute type="usage" />
  152. <attribute type="dataSource" />
  153. </ElementType>
  154. <ElementType name="BACKUP_LOCATIONS" content="eltOnly" model="closed" order="many">
  155. <description>
  156. Files to include and exclude from the backup
  157. </description>
  158. <element type="INCLUDE_FILES" minOccurs="0" />
  159. <element type="EXCLUDE_FILES" minOccurs="0" />
  160. <element type="DATABASE" minOccurs="0"/>
  161. <element type="FILE_GROUP" minOccurs="0" />
  162. </ElementType>
  163. <ElementType name="INCLUDE_FILES" content="empty">
  164. <description>
  165. Files to include in the backup, essentially files to backup if you want
  166. to backup this application/service
  167. </description>
  168. <attribute type="path" />
  169. <attribute type="filespec" />
  170. <attribute type="recursive" />
  171. <attribute type="alternatePath" />
  172. </ElementType>
  173. <ElementType name="EXCLUDE_FILES" content="empty">
  174. <description>
  175. Files that should always be excluded from the backup
  176. </description>
  177. <attribute type="path" />
  178. <attribute type="filespec" />
  179. <attribute type="recursive" />
  180. </ElementType>
  181. <ElementType name="DATABASE" content="eltOnly" model="closed" order="many">
  182. <description>
  183. List of databases of interest. This is used to allow selective
  184. backup and restore of specific databases.
  185. </description>
  186. <attribute type= "logicalPath" />
  187. <attribute type="componentName" />
  188. <attribute type="caption" />
  189. <attribute type="icon" />
  190. <attribute type="restoreMetadata" />
  191. <attribute type="notifyOnBackupComplete" />
  192. <attribute type="selectable" />
  193. <attribute type="selectableForRestore" />
  194. <attribute type="componentFlags" />
  195. <element type="DATABASE_FILES" minOccurs="1" />
  196. <element type="DATABASE_LOGFILES" />
  197. <element type="DEPENDENCY" minOccurs="0" />
  198. </ElementType>
  199. <ElementType name="DATABASE_FILES" content="empty" model="closed">
  200. <description>
  201. Location of a set of database files. Filespec can include wildcards
  202. </description>
  203. <attribute type="path" />
  204. <attribute type="filespec" />
  205. <attribute type="filespecBackupType" />
  206. </ElementType>
  207. <ElementType name="DATABASE_LOGFILES" content="empty" model="closed">
  208. <description>
  209. Location of a set of database log files. Filespec can include
  210. wildcards. Indication of whether database log files are truncated.
  211. </description>
  212. <attribute type="path" />
  213. <attribute type="filespec" />
  214. <attribute type="filespecBackupType" />
  215. </ElementType>
  216. <ElementType name="FILE_GROUP" content="eltOnly" model="closed" order="many">
  217. <description>
  218. A named group of files. Used to group sets of files into a group
  219. that are backed up together
  220. </description>
  221. <attribute type="logicalPath" />
  222. <attribute type="componentName" />
  223. <attribute type="caption" />
  224. <attribute type="icon" />
  225. <attribute type="restoreMetadata" />
  226. <attribute type="notifyOnBackupComplete" />
  227. <attribute type="selectable" />
  228. <attribute type="selectableForRestore" />
  229. <attribute type="componentFlags" />
  230. <element type="FILE_LIST" />
  231. <element type="DEPENDENCY" minOccurs="0" />
  232. </ElementType>
  233. <ElementType name="FILE_LIST" content="empty" model="closed">
  234. <description>
  235. Location of a set of files in a FILE_GROUP. Filespec can include
  236. wildcards.
  237. </description>
  238. <attribute type="path" />
  239. <attribute type="filespec" />
  240. <attribute type="recursive" />
  241. <attribute type="alternatePath" />
  242. <attribute type="filespecBackupType" />
  243. </ElementType>
  244. <ElementType name="DEPENDENCY" content="empty" model="closed">
  245. <description>
  246. A dependency from one component to another component in another writer.
  247. </description>
  248. <AttributeType name="onWriterId" dt:type="uuid" required="yes">
  249. <description>
  250. Id of writer that this component is dependent on.
  251. </description>
  252. </AttributeType>
  253. <AttributeType name="onLogicalPath" dt:type="string" required="no">
  254. <description>
  255. Logical path of component that this component is dependent on.
  256. </description>
  257. </AttributeType>
  258. <AttributeType name="onComponentName" dt:type="string" required="yes">
  259. <description>
  260. Name of component that this component is dependent on.
  261. </description>
  262. </AttributeType>
  263. <attribute type="onWriterId" />
  264. <attribute type="onLogicalPath" />
  265. <attribute type="onComponentName" />
  266. </ElementType>
  267. <ElementType name="RESTORE_METHOD" content="eltOnly" model="open" order="many">
  268. <description>
  269. How restore should be performed. Includes specification of how files
  270. should be restored as well as special steps that should occur in order
  271. to complete the restore.
  272. </description>
  273. <AttributeType name="method" dt:type="enumeration"
  274. required="yes"
  275. dt:values="RESTORE_IF_NONE_THERE
  276. RESTORE_IF_CAN_BE_REPLACED
  277. STOP_RESTART_SERVICE
  278. REPLACE_AT_REBOOT
  279. REPLACE_AT_REBOOT_IF_CANNOT_REPLACE
  280. RESTORE_TO_ALTERNATE_LOCATION
  281. CUSTOM">
  282. <description>
  283. RESTORE_IF_NONE_THERE: i.e., can restore data if it is not at the
  284. location where it was backed up from. This essentially allows
  285. data to be restored to a clean system
  286. RESTORE_IF_CAN_BE_REPLACED: Restore data if all of the files can
  287. be replaced in the orgiginal backup location. Fails if any of
  288. the files are open. If an alternate location is provided, files
  289. will be placed there if they cannot be restored to their original
  290. location.
  291. STOP_RESTART_SERVICE: stop service (service attribute must be
  292. specified). Restore files to original backup location.
  293. Restart service. Fails if any of the files are open after the
  294. service is stopped.
  295. REPLACE_AT_REBOOT: Restore files to a temporary location. Use
  296. MoveFileEx to replace the files at reboot.
  297. REPLACE_AT_REBOOT_IF_CANNOT_REPLACE: Similiar to REPLACE_AT_REBOOT
  298. however files may be restored in place in they are not busy. All files
  299. within a component must be either completely replaced in place or
  300. completely replaced at reboot, so if one component file is busy, all files
  301. in that component must be replaced at reboot.
  302. RESTORE_TO_ALTERNATIVE_LOCATION: Restore files to an alternate
  303. location. Typically writerRestore will indicate that the writer
  304. will participate in the restore process
  305. CUSTOM: restore process cannot be expressed using this specification
  306. </description>
  307. </AttributeType>
  308. <AttributeType name="service" dt:type="string" required="no">
  309. <description>
  310. Must be specified if method="STOP_RESTART_SERVICE", indicates
  311. service to be stopped before restoring files.
  312. </description>
  313. </AttributeType>
  314. <AttributeType name="writerRestore" dt:type="enumeration"
  315. dt:values="always never ifReplaceFails" default="never">
  316. <description>
  317. Whether writer should be invoked after files are restored to
  318. disk. Options are always, never, and ifReplaceFails. The latter means
  319. that the files will be restored to their original location. If one
  320. or more of the files cannot be replaced, then the files will be
  321. restored to an alternate location (must be specified via
  322. ALTERNATE_LOCATION_MAPPING. After the files are restored, the writer
  323. is invoked.
  324. </description>
  325. </AttributeType>
  326. <AttributeType name="userProcedure" dt:type="uri" required="no">
  327. <description>
  328. Description of actions that the user should perform to restore the files.
  329. The format of this string has yet to be determined.
  330. </description>
  331. </AttributeType>
  332. <AttributeType name="rebootRequired" dt:type="enumeration"
  333. dt:values="yes no" default="no" >
  334. <description>
  335. Should a reboot be performed after restoring the data for this
  336. writer
  337. </description>
  338. </AttributeType>
  339. <attribute type="method" />
  340. <attribute type="service" />
  341. <attribute type="writerRestore" />
  342. <attribute type="userProcedure" />
  343. <attribute type="rebootRequired" />
  344. <element type="ALTERNATE_LOCATION_MAPPING" minOccurs="0" maxOccurs="*" />
  345. </ElementType>
  346. <ElementType name="ALTERNATE_LOCATION_MAPPING" content="empty" model="closed">
  347. <description>
  348. Mapping from a location that was backed up to a location to restore to.
  349. </description>
  350. <attribute type="path" />
  351. <attribute type="filespec" />
  352. <attribute type="recursive" />
  353. <attribute type="alternatePath" />
  354. </ElementType>
  355. </Schema>