feat: initial support for OVA VM export (#6006)
Co-authored-by: Florent Beauchamp <flo850@free.fr>
This commit is contained in:
parent
96f83d92fc
commit
4b9db257fd
@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
> Users must be able to say: “Nice enhancement, I'm eager to test it”
|
> Users must be able to say: “Nice enhancement, I'm eager to test it”
|
||||||
|
|
||||||
|
- [VM export] Feat export to `ova` format (PR [#6006](https://github.com/vatesfr/xen-orchestra/pull/6006))
|
||||||
|
|
||||||
### Bug fixes
|
### Bug fixes
|
||||||
|
|
||||||
> Users must be able to say: “I had this issue, happy to know it's fixed”
|
> Users must be able to say: “I had this issue, happy to know it's fixed”
|
||||||
@ -27,3 +29,7 @@
|
|||||||
> - major: if the change breaks compatibility
|
> - major: if the change breaks compatibility
|
||||||
>
|
>
|
||||||
> In case of conflict, the highest (lowest in previous list) `$version` wins.
|
> In case of conflict, the highest (lowest in previous list) `$version` wins.
|
||||||
|
|
||||||
|
- xo-vmdk-to-vhd minor
|
||||||
|
- xo-server minor
|
||||||
|
- xo-web minor
|
||||||
|
@ -4,7 +4,7 @@ FROM ubuntu:xenial
|
|||||||
# https://qastack.fr/programming/25899912/how-to-install-nvm-in-docker
|
# https://qastack.fr/programming/25899912/how-to-install-nvm-in-docker
|
||||||
|
|
||||||
RUN apt-get update
|
RUN apt-get update
|
||||||
RUN apt-get install -y curl qemu-utils blktap-utils vmdk-stream-converter git
|
RUN apt-get install -y curl qemu-utils blktap-utils vmdk-stream-converter git libxml2-utils
|
||||||
ENV NVM_DIR /usr/local/nvm
|
ENV NVM_DIR /usr/local/nvm
|
||||||
RUN mkdir -p /usr/local/nvm
|
RUN mkdir -p /usr/local/nvm
|
||||||
RUN cd /usr/local/nvm
|
RUN cd /usr/local/nvm
|
||||||
|
@ -6,8 +6,8 @@ import getStream from 'get-stream'
|
|||||||
import hrp from 'http-request-plus'
|
import hrp from 'http-request-plus'
|
||||||
import { createLogger } from '@xen-orchestra/log'
|
import { createLogger } from '@xen-orchestra/log'
|
||||||
import { defer } from 'golike-defer'
|
import { defer } from 'golike-defer'
|
||||||
import { FAIL_ON_QUEUE } from 'limit-concurrency-decorator'
|
|
||||||
import { format } from 'json-rpc-peer'
|
import { format } from 'json-rpc-peer'
|
||||||
|
import { FAIL_ON_QUEUE } from 'limit-concurrency-decorator'
|
||||||
import { ignoreErrors } from 'promise-toolbox'
|
import { ignoreErrors } from 'promise-toolbox'
|
||||||
import { invalidParameters, noSuchObject, operationFailed, unauthorized } from 'xo-common/api-errors.js'
|
import { invalidParameters, noSuchObject, operationFailed, unauthorized } from 'xo-common/api-errors.js'
|
||||||
import { Ref } from 'xen-api'
|
import { Ref } from 'xen-api'
|
||||||
@ -1004,10 +1004,11 @@ revert.resolve = {
|
|||||||
|
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
|
|
||||||
async function handleExport(req, res, { xapi, vmRef, compress }) {
|
async function handleExport(req, res, { xapi, vmRef, compress, format = 'xva' }) {
|
||||||
const stream = await xapi.VM_export(FAIL_ON_QUEUE, vmRef, {
|
// @todo : should we put back the handleExportFAIL_ON_QUEUE ?
|
||||||
compress,
|
const stream =
|
||||||
})
|
format === 'ova' ? await xapi.exportVmOva(vmRef) : await xapi.VM_export(FAIL_ON_QUEUE, vmRef, { compress })
|
||||||
|
|
||||||
res.on('close', () => stream.cancel())
|
res.on('close', () => stream.cancel())
|
||||||
// Remove the filename as it is already part of the URL.
|
// Remove the filename as it is already part of the URL.
|
||||||
stream.headers['content-disposition'] = 'attachment'
|
stream.headers['content-disposition'] = 'attachment'
|
||||||
@ -1017,7 +1018,7 @@ async function handleExport(req, res, { xapi, vmRef, compress }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: integrate in xapi.js
|
// TODO: integrate in xapi.js
|
||||||
async function export_({ vm, compress }) {
|
async function export_({ vm, compress, format = 'xva' }) {
|
||||||
if (vm.power_state === 'Running') {
|
if (vm.power_state === 'Running') {
|
||||||
await checkPermissionOnSrs.call(this, vm)
|
await checkPermissionOnSrs.call(this, vm)
|
||||||
}
|
}
|
||||||
@ -1026,11 +1027,12 @@ async function export_({ vm, compress }) {
|
|||||||
xapi: this.getXapi(vm),
|
xapi: this.getXapi(vm),
|
||||||
vmRef: vm._xapiRef,
|
vmRef: vm._xapiRef,
|
||||||
compress,
|
compress,
|
||||||
|
format,
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
$getFrom: await this.registerHttpRequest(handleExport, data, {
|
$getFrom: await this.registerHttpRequest(handleExport, data, {
|
||||||
suffix: '/' + encodeURIComponent(`${safeDateFormat(new Date())} - ${vm.name_label}.xva`),
|
suffix: '/' + encodeURIComponent(`${safeDateFormat(new Date())} - ${vm.name_label}.${format}`),
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1038,6 +1040,7 @@ async function export_({ vm, compress }) {
|
|||||||
export_.params = {
|
export_.params = {
|
||||||
vm: { type: 'string' },
|
vm: { type: 'string' },
|
||||||
compress: { type: ['boolean', 'string'], optional: true },
|
compress: { type: ['boolean', 'string'], optional: true },
|
||||||
|
format: { enum: ['xva', 'ova'], optional: true },
|
||||||
}
|
}
|
||||||
|
|
||||||
export_.resolve = {
|
export_.resolve = {
|
||||||
@ -1060,6 +1063,7 @@ async function handleVmImport(req, res, { data, srId, type, xapi }) {
|
|||||||
// Timeout seems to be broken in Node 4.
|
// Timeout seems to be broken in Node 4.
|
||||||
// See https://github.com/nodejs/node/issues/3319
|
// See https://github.com/nodejs/node/issues/3319
|
||||||
req.setTimeout(43200000) // 12 hours
|
req.setTimeout(43200000) // 12 hours
|
||||||
|
|
||||||
// expect "multipart/form-data; boundary=something"
|
// expect "multipart/form-data; boundary=something"
|
||||||
const contentType = req.headers['content-type']
|
const contentType = req.headers['content-type']
|
||||||
const vm = await (contentType !== undefined && contentType.startsWith('multipart/form-data')
|
const vm = await (contentType !== undefined && contentType.startsWith('multipart/form-data')
|
||||||
|
@ -20,7 +20,7 @@ import semver from 'semver'
|
|||||||
import tarStream from 'tar-stream'
|
import tarStream from 'tar-stream'
|
||||||
import uniq from 'lodash/uniq.js'
|
import uniq from 'lodash/uniq.js'
|
||||||
import { asyncMap } from '@xen-orchestra/async-map'
|
import { asyncMap } from '@xen-orchestra/async-map'
|
||||||
import { vmdkToVhd, vhdToVMDK } from 'xo-vmdk-to-vhd'
|
import { vmdkToVhd, vhdToVMDK, writeOvaOn } from 'xo-vmdk-to-vhd'
|
||||||
import { cancelable, CancelToken, fromEvents, ignoreErrors, pCatch, pRetry } from 'promise-toolbox'
|
import { cancelable, CancelToken, fromEvents, ignoreErrors, pCatch, pRetry } from 'promise-toolbox'
|
||||||
import { createLogger } from '@xen-orchestra/log'
|
import { createLogger } from '@xen-orchestra/log'
|
||||||
import { decorateWith } from '@vates/decorate-with'
|
import { decorateWith } from '@vates/decorate-with'
|
||||||
@ -519,6 +519,76 @@ export default class Xapi extends XapiBase {
|
|||||||
return console
|
return console
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@cancelable
|
||||||
|
async exportVmOva($cancelToken, vmRef) {
|
||||||
|
const vm = this.getObject(vmRef)
|
||||||
|
const useSnapshot = isVmRunning(vm)
|
||||||
|
let exportedVm
|
||||||
|
if (useSnapshot) {
|
||||||
|
const snapshotRef = await this.VM_snapshot(vmRef, {
|
||||||
|
name_label: vm.name_label,
|
||||||
|
cancelToken: $cancelToken,
|
||||||
|
})
|
||||||
|
exportedVm = this.getObject(snapshotRef)
|
||||||
|
} else {
|
||||||
|
exportedVm = vm
|
||||||
|
}
|
||||||
|
|
||||||
|
const collectedDisks = []
|
||||||
|
for (const blockDevice of exportedVm.$VBDs) {
|
||||||
|
if (blockDevice.type === 'Disk') {
|
||||||
|
const vdi = blockDevice.$VDI
|
||||||
|
collectedDisks.push({
|
||||||
|
getStream: () => {
|
||||||
|
return this.exportVdiContent($cancelToken, vdi, VDI_FORMAT_VHD)
|
||||||
|
},
|
||||||
|
name: vdi.name_label,
|
||||||
|
fileName: vdi.name_label + '.vmdk',
|
||||||
|
description: vdi.name_description,
|
||||||
|
capacityMB: Math.ceil(vdi.virtual_size / 1024 / 1024),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const nics = []
|
||||||
|
for (const vif of exportedVm.$VIFs) {
|
||||||
|
nics.push({
|
||||||
|
macAddress: vif.MAC_autogenerated ? '' : vif.MAC,
|
||||||
|
networkName: this.getObject(vif.network).name_label,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const writeStream = new PassThrough()
|
||||||
|
writeStream.task = this.task_create('VM OVA export', exportedVm.name_label)
|
||||||
|
writeOvaOn(writeStream, {
|
||||||
|
disks: collectedDisks,
|
||||||
|
vmName: exportedVm.name_label,
|
||||||
|
vmDescription: exportedVm.name_description,
|
||||||
|
cpuCount: exportedVm.VCPUs_at_startup,
|
||||||
|
vmMemoryMB: Math.ceil(exportedVm.memory_dynamic_max / 1024 / 1024),
|
||||||
|
firmware: exportedVm.HVM_boot_params.firmware,
|
||||||
|
nics,
|
||||||
|
})
|
||||||
|
|
||||||
|
writeStream.statusCode = 200
|
||||||
|
writeStream.headers = { 'content-type': 'application/ova' }
|
||||||
|
writeStream.statusMessage = 'OK'
|
||||||
|
|
||||||
|
let destroyed = false
|
||||||
|
const destroySnapshot = () => {
|
||||||
|
if (useSnapshot && !destroyed) {
|
||||||
|
destroyed = true
|
||||||
|
this.VM_destroy(exportedVm.$ref)::ignoreErrors()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
writeStream.cancel = () => {
|
||||||
|
destroySnapshot()
|
||||||
|
return writeStream.destroy()
|
||||||
|
}
|
||||||
|
writeStream.once('end', destroySnapshot)
|
||||||
|
writeStream.once('error', destroySnapshot)
|
||||||
|
return writeStream
|
||||||
|
}
|
||||||
|
|
||||||
// Create a snapshot (if necessary) of the VM and returns a delta export
|
// Create a snapshot (if necessary) of the VM and returns a delta export
|
||||||
// object.
|
// object.
|
||||||
@cancelable
|
@cancelable
|
||||||
@ -1670,8 +1740,11 @@ export default class Xapi extends XapiBase {
|
|||||||
if (base !== undefined) {
|
if (base !== undefined) {
|
||||||
params.base = base
|
params.base = base
|
||||||
}
|
}
|
||||||
const vhdResult = await this.VDI_exportContent(vdi.$ref, params)
|
let vhdResult
|
||||||
const vmdkStream = await vhdToVMDK(filename, vhdResult)
|
const vmdkStream = await vhdToVMDK(`${vdi.name_label}.vmdk`, async () => {
|
||||||
|
vhdResult = await this.VDI_exportContent(vdi.$ref, params)
|
||||||
|
return vhdResult
|
||||||
|
})
|
||||||
// callers expect the stream to be an HTTP response.
|
// callers expect the stream to be an HTTP response.
|
||||||
vmdkStream.headers = {
|
vmdkStream.headers = {
|
||||||
...vhdResult.headers,
|
...vhdResult.headers,
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
"name": "xo-vmdk-to-vhd",
|
"name": "xo-vmdk-to-vhd",
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"description": "JS lib streaming a vmdk file to a vhd",
|
"description": "JS lib reading and writing .vmdk and .ova files",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"vhd",
|
"vhd",
|
||||||
"vmdk"
|
"vmdk"
|
||||||
@ -25,6 +25,7 @@
|
|||||||
"lodash": "^4.17.15",
|
"lodash": "^4.17.15",
|
||||||
"pako": "^2.0.4",
|
"pako": "^2.0.4",
|
||||||
"promise-toolbox": "^0.21.0",
|
"promise-toolbox": "^0.21.0",
|
||||||
|
"tar-stream": "^2.2.0",
|
||||||
"vhd-lib": "^3.1.0",
|
"vhd-lib": "^3.1.0",
|
||||||
"xml2js": "^0.4.23"
|
"xml2js": "^0.4.23"
|
||||||
},
|
},
|
||||||
@ -39,7 +40,8 @@
|
|||||||
"fs-extra": "^10.0.0",
|
"fs-extra": "^10.0.0",
|
||||||
"get-stream": "^6.0.0",
|
"get-stream": "^6.0.0",
|
||||||
"rimraf": "^3.0.0",
|
"rimraf": "^3.0.0",
|
||||||
"tmp": "^0.2.1"
|
"tmp": "^0.2.1",
|
||||||
|
"validate-with-xmllint": "^1.2.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
|
"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import asyncIteratorToStream from 'async-iterator-to-stream'
|
import asyncIteratorToStream from 'async-iterator-to-stream'
|
||||||
import createReadableSparseStream from 'vhd-lib/createReadableSparseStream.js'
|
import createReadableSparseStream from 'vhd-lib/createReadableSparseStream.js'
|
||||||
import { parseOVAFile, ParsableFile } from './ova'
|
import { parseOVAFile, ParsableFile } from './ova-read'
|
||||||
import VMDKDirectParser from './vmdk-read'
|
import VMDKDirectParser from './vmdk-read'
|
||||||
import { generateVmdkData } from './vmdk-generate'
|
import { generateVmdkData } from './vmdk-generate'
|
||||||
import { parseVhdToBlocks } from './parseVhdToBlocks.js'
|
import { writeOvaOn } from './ova-generate'
|
||||||
|
import { parseVhdToBlocks } from './parseVhdToBlocks'
|
||||||
|
|
||||||
export { default as readVmdkGrainTable, readCapacityAndGrainTable } from './vmdk-read-table'
|
export { default as readVmdkGrainTable, readCapacityAndGrainTable } from './vmdk-read-table'
|
||||||
|
|
||||||
@ -26,15 +27,43 @@ async function vmdkToVhd(vmdkReadStream, grainLogicalAddressList, grainFileOffse
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function computeVmdkLength(diskName, vhdReadStream) {
|
||||||
|
let length = 0
|
||||||
|
for await (const b of await vhdToVMDKIterator(diskName, vhdReadStream)) {
|
||||||
|
length += b.length
|
||||||
|
}
|
||||||
|
return length
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* @param diskName
|
||||||
|
* @param vhdReadStreamGetter an async function whose call brings a fresh VHD readStream.
|
||||||
|
* We need to read the VHD twice when generating OVA files to get the VMDK file length.
|
||||||
|
* @param withLength if true, the returned VMDK stream will have its `length` field set. The VHD stream will be entirely read to compute it.
|
||||||
|
* @returns a readable stream representing a VMDK file
|
||||||
|
*/
|
||||||
|
export async function vhdToVMDK(diskName, vhdReadStreamGetter, withLength = false) {
|
||||||
|
let length
|
||||||
|
if (withLength) {
|
||||||
|
length = await computeVmdkLength(diskName, await vhdReadStreamGetter())
|
||||||
|
}
|
||||||
|
const iterable = await vhdToVMDKIterator(diskName, await vhdReadStreamGetter())
|
||||||
|
const stream = await asyncIteratorToStream(iterable)
|
||||||
|
if (withLength) {
|
||||||
|
stream.length = length
|
||||||
|
}
|
||||||
|
return stream
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the returned stream will have its length set IIF compress === false
|
||||||
* @param diskName
|
* @param diskName
|
||||||
* @param vhdReadStream
|
* @param vhdReadStream
|
||||||
* @returns a readable stream representing a VMDK file
|
* @returns a readable stream representing a VMDK file
|
||||||
*/
|
*/
|
||||||
async function vhdToVMDK(diskName, vhdReadStream) {
|
export async function vhdToVMDKIterator(diskName, vhdReadStream) {
|
||||||
const { blockSize, blocks, diskSize, geometry } = await parseVhdToBlocks(vhdReadStream)
|
const { blockSize, blocks, diskSize, geometry } = await parseVhdToBlocks(vhdReadStream)
|
||||||
return asyncIteratorToStream(generateVmdkData(diskName, diskSize, blockSize, blocks, geometry))
|
return generateVmdkData(diskName, diskSize, blockSize, blocks, geometry)
|
||||||
}
|
}
|
||||||
|
|
||||||
export { ParsableFile, parseOVAFile, vmdkToVhd, vhdToVMDK }
|
export { ParsableFile, parseOVAFile, vmdkToVhd, writeOvaOn }
|
||||||
|
91
packages/xo-vmdk-to-vhd/src/ova-generate.integ.spec.js
Normal file
91
packages/xo-vmdk-to-vhd/src/ova-generate.integ.spec.js
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
/* eslint-env jest */
|
||||||
|
import { validateXMLWithXSD } from 'validate-with-xmllint'
|
||||||
|
import { createReadStream, createWriteStream, readFile } from 'fs-extra'
|
||||||
|
import execa from 'execa'
|
||||||
|
import path from 'path'
|
||||||
|
import { pFromCallback, fromEvent } from 'promise-toolbox'
|
||||||
|
import tmp from 'tmp'
|
||||||
|
import rimraf from 'rimraf'
|
||||||
|
import { writeOvaOn } from './ova-generate'
|
||||||
|
import { parseOVF } from './ova-read'
|
||||||
|
|
||||||
|
const initialDir = process.cwd()
|
||||||
|
jest.setTimeout(100000)
|
||||||
|
beforeEach(async () => {
|
||||||
|
const dir = await pFromCallback(cb => tmp.dir(cb))
|
||||||
|
process.chdir(dir)
|
||||||
|
})
|
||||||
|
|
||||||
|
afterEach(async () => {
|
||||||
|
const tmpDir = process.cwd()
|
||||||
|
process.chdir(initialDir)
|
||||||
|
await pFromCallback(cb => rimraf(tmpDir, cb))
|
||||||
|
})
|
||||||
|
|
||||||
|
test('An ova file is generated correctly', async () => {
|
||||||
|
const inputRawFileName1 = 'random-data1.raw'
|
||||||
|
const inputRawFileName2 = 'random-data2.raw'
|
||||||
|
const vhdFileName1 = 'random-data1.vhd'
|
||||||
|
const vhdFileName2 = 'random-data2.vhd'
|
||||||
|
const ovaFileName1 = 'random-disk1.ova'
|
||||||
|
const dataSize = 100 * 1024 * 1024 // this number is an integer head/cylinder/count equation solution
|
||||||
|
try {
|
||||||
|
await execa('base64 /dev/urandom | head -c ' + dataSize + ' > ' + inputRawFileName1, [], { shell: true })
|
||||||
|
await execa('base64 /dev/urandom | head -c ' + dataSize + ' > ' + inputRawFileName2, [], { shell: true })
|
||||||
|
await execa('qemu-img', ['convert', '-fraw', '-Ovpc', inputRawFileName1, vhdFileName1])
|
||||||
|
await execa('qemu-img', ['convert', '-fraw', '-Ovpc', inputRawFileName2, vhdFileName2])
|
||||||
|
const destination = await createWriteStream(ovaFileName1)
|
||||||
|
const diskName1 = 'disk1'
|
||||||
|
const diskName2 = 'disk2'
|
||||||
|
const vmdkDiskName1 = `${diskName1}.vmdk`
|
||||||
|
const vmdkDiskName2 = `${diskName2}.vmdk`
|
||||||
|
const pipe = await writeOvaOn(destination, {
|
||||||
|
vmName: 'vm1',
|
||||||
|
vmDescription: 'desc',
|
||||||
|
vmMemoryMB: 100,
|
||||||
|
cpuCount: 3,
|
||||||
|
nics: [{ name: 'eth12', networkName: 'BigLan' }],
|
||||||
|
disks: [
|
||||||
|
{
|
||||||
|
name: diskName1,
|
||||||
|
fileName: 'diskName1.vmdk',
|
||||||
|
capacityMB: Math.ceil((dataSize / 1024) * 1024),
|
||||||
|
getStream: async () => {
|
||||||
|
return createReadStream(vhdFileName1)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: diskName2,
|
||||||
|
fileName: 'diskName1.vmdk',
|
||||||
|
capacityMB: Math.ceil((dataSize / 1024) * 1024),
|
||||||
|
getStream: async () => {
|
||||||
|
return createReadStream(vhdFileName2)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
await fromEvent(pipe, 'finish')
|
||||||
|
await execa('tar', ['xf', ovaFileName1, 'vm1.ovf'])
|
||||||
|
const xml = await readFile('vm1.ovf', { encoding: 'utf-8' })
|
||||||
|
|
||||||
|
try {
|
||||||
|
await validateXMLWithXSD(xml, path.join(__dirname, 'ova-schema', 'dsp8023_1.1.1.xsd'))
|
||||||
|
await execa('tar', ['xf', ovaFileName1, vmdkDiskName1])
|
||||||
|
await execa('tar', ['xf', ovaFileName1, vmdkDiskName2])
|
||||||
|
await execa('qemu-img', ['check', vmdkDiskName1])
|
||||||
|
await execa('qemu-img', ['check', vmdkDiskName2])
|
||||||
|
await execa('qemu-img', ['compare', inputRawFileName1, vmdkDiskName1])
|
||||||
|
await execa('qemu-img', ['compare', inputRawFileName2, vmdkDiskName2])
|
||||||
|
await parseOVF({ read: () => xml }, s => s)
|
||||||
|
} catch (e) {
|
||||||
|
e.xml = xml
|
||||||
|
// console.log({ xml })
|
||||||
|
throw e
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error.stdout)
|
||||||
|
console.error(error.stderr)
|
||||||
|
console.error(error.message)
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
})
|
194
packages/xo-vmdk-to-vhd/src/ova-generate.js
Normal file
194
packages/xo-vmdk-to-vhd/src/ova-generate.js
Normal file
@ -0,0 +1,194 @@
|
|||||||
|
import tar from 'tar-stream'
|
||||||
|
import { computeVmdkLength, vhdToVMDKIterator } from '.'
|
||||||
|
import { fromCallback } from 'promise-toolbox'
|
||||||
|
|
||||||
|
// WE MIGHT WANT TO HAVE A LOOK HERE: https://opennodecloud.com/howto/2013/12/25/howto-ON-ovf-reference.html
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param writeStream
|
||||||
|
* @param vmName
|
||||||
|
* @param vmDescription
|
||||||
|
* @param disks [{name, fileName, capacityMB, getStream}]
|
||||||
|
* @param nics [{name, networkName}]
|
||||||
|
* @param vmMemoryMB
|
||||||
|
* @param cpuCount
|
||||||
|
* @returns readStream
|
||||||
|
*/
|
||||||
|
export async function writeOvaOn(
|
||||||
|
writeStream,
|
||||||
|
{ vmName, vmDescription = '', disks = [], firmware = 'bios', nics = [], vmMemoryMB = 64, cpuCount = 1 }
|
||||||
|
) {
|
||||||
|
const ovf = createOvf(vmName, vmDescription, disks, nics, vmMemoryMB, cpuCount, firmware)
|
||||||
|
const pack = tar.pack()
|
||||||
|
const pipe = pack.pipe(writeStream)
|
||||||
|
await fromCallback.call(pack, pack.entry, { name: `${vmName}.ovf` }, Buffer.from(ovf, 'utf8'))
|
||||||
|
|
||||||
|
async function writeDisk(entry, blockIterator) {
|
||||||
|
for await (const block of blockIterator) {
|
||||||
|
entry.write(block)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://github.com/mafintosh/tar-stream/issues/24#issuecomment-558358268
|
||||||
|
async function pushDisk(disk) {
|
||||||
|
const size = await computeVmdkLength(disk.name, await disk.getStream())
|
||||||
|
disk.fileSize = size
|
||||||
|
const blockIterator = await vhdToVMDKIterator(disk.name, await disk.getStream())
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const entry = pack.entry({ name: `${disk.name}.vmdk`, size: size }, err => {
|
||||||
|
if (err == null) {
|
||||||
|
return resolve()
|
||||||
|
} else return reject(err)
|
||||||
|
})
|
||||||
|
return writeDisk(entry, blockIterator).then(
|
||||||
|
() => entry.end(),
|
||||||
|
e => reject(e)
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const disk of disks) {
|
||||||
|
await pushDisk(disk)
|
||||||
|
}
|
||||||
|
pack.finalize()
|
||||||
|
return pipe
|
||||||
|
}
|
||||||
|
|
||||||
|
function createDiskSections(disks) {
|
||||||
|
const fileReferences = []
|
||||||
|
const diskFragments = []
|
||||||
|
const diskItems = []
|
||||||
|
for (let i = 0; i < disks.length; i++) {
|
||||||
|
const disk = disks[i]
|
||||||
|
const diskId = `vmdisk${i + 1}`
|
||||||
|
fileReferences.push(` <File ovf:href="${disk.fileName}" ovf:id="file${i + 1}"/>`)
|
||||||
|
diskFragments.push(
|
||||||
|
` <Disk ovf:capacity="${
|
||||||
|
disk.capacityMB
|
||||||
|
}" ovf:capacityAllocationUnits="byte * 2^20" ovf:diskId="${diskId}" ovf:fileRef="file${
|
||||||
|
i + 1
|
||||||
|
}" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" />`
|
||||||
|
)
|
||||||
|
diskItems.push(`
|
||||||
|
<Item>
|
||||||
|
<rasd:AddressOnParent>${i}</rasd:AddressOnParent>
|
||||||
|
<rasd:ElementName>Hard Disk ${i + 1}</rasd:ElementName>
|
||||||
|
<rasd:HostResource>ovf:/disk/${diskId}</rasd:HostResource>
|
||||||
|
<rasd:InstanceID>${diskId}</rasd:InstanceID>
|
||||||
|
<rasd:Parent>4</rasd:Parent>
|
||||||
|
<rasd:ResourceType>17</rasd:ResourceType>
|
||||||
|
</Item>
|
||||||
|
`)
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
fileReferences: fileReferences.join('\n'),
|
||||||
|
diskFragments: diskFragments.join('\n'),
|
||||||
|
diskItems: diskItems.join('\n'),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function createNicsSection(nics) {
|
||||||
|
const networks = new Set()
|
||||||
|
const nicItems = []
|
||||||
|
for (let i = 0; i < nics.length; i++) {
|
||||||
|
const nic = nics[i]
|
||||||
|
networks.add(nic.networkName)
|
||||||
|
const text = `
|
||||||
|
<Item>
|
||||||
|
<rasd:AddressOnParent>${i}</rasd:AddressOnParent>
|
||||||
|
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
|
||||||
|
<rasd:Connection>${nic.networkName}</rasd:Connection>
|
||||||
|
<rasd:Description>PCNet32 ethernet adapter on "${nic.networkName}"</rasd:Description>
|
||||||
|
<rasd:ElementName>Connection to ${nic.networkName}</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>${'nic' + i}</rasd:InstanceID>
|
||||||
|
<rasd:ResourceSubType>PCNet32</rasd:ResourceSubType>
|
||||||
|
<rasd:Address>${nic.macAddress}</rasd:Address>
|
||||||
|
<rasd:ResourceType>10</rasd:ResourceType>
|
||||||
|
</Item>
|
||||||
|
`
|
||||||
|
nicItems.push(text)
|
||||||
|
}
|
||||||
|
const networksElements = []
|
||||||
|
for (const network of networks) {
|
||||||
|
networksElements.push(` <Network ovf:name="${network}"/>`)
|
||||||
|
}
|
||||||
|
return { nicsSection: nicItems.join('\n'), networksSection: networksElements.join('\n') }
|
||||||
|
}
|
||||||
|
|
||||||
|
function createOvf(vmName, vmDescription, disks = [], nics = [], vmMemoryMB = 64, cpuCount = 1, firmware = 'bios') {
|
||||||
|
const diskSection = createDiskSections(disks)
|
||||||
|
const networkSection = createNicsSection(nics)
|
||||||
|
let id = 1
|
||||||
|
const nextId = () => id++
|
||||||
|
|
||||||
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--Generated by Xen Orchestra-->
|
||||||
|
<ovf:Envelope xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
|
||||||
|
xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
|
||||||
|
xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData">
|
||||||
|
<References>
|
||||||
|
${diskSection.fileReferences}
|
||||||
|
</References>
|
||||||
|
<DiskSection>
|
||||||
|
<Info>Virtual disk information</Info>
|
||||||
|
${diskSection.diskFragments}
|
||||||
|
</DiskSection>
|
||||||
|
<NetworkSection>
|
||||||
|
<Info>The list of logical networks</Info>
|
||||||
|
${networkSection.networksSection}
|
||||||
|
</NetworkSection>
|
||||||
|
<VirtualSystem ovf:id="${vmName}">
|
||||||
|
<Info>A virtual machine</Info>
|
||||||
|
<Name>${vmName}</Name>
|
||||||
|
<OperatingSystemSection ovf:id="${nextId()}">
|
||||||
|
<Info>The kind of installed guest operating system</Info>
|
||||||
|
</OperatingSystemSection>
|
||||||
|
<VirtualHardwareSection>
|
||||||
|
<Info>Virtual hardware requirements</Info>
|
||||||
|
<System>
|
||||||
|
<vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
|
||||||
|
<vssd:InstanceID>0</vssd:InstanceID>
|
||||||
|
<vssd:VirtualSystemIdentifier>${vmName}</vssd:VirtualSystemIdentifier>
|
||||||
|
<vssd:VirtualSystemType>vmx-11</vssd:VirtualSystemType>
|
||||||
|
</System>
|
||||||
|
<Item>
|
||||||
|
<rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
|
||||||
|
<rasd:Description>Number of Virtual CPUs</rasd:Description>
|
||||||
|
<rasd:ElementName>${cpuCount} virtual CPU(s)</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>1</rasd:InstanceID>
|
||||||
|
<rasd:ResourceType>3</rasd:ResourceType>
|
||||||
|
<rasd:VirtualQuantity>${cpuCount}</rasd:VirtualQuantity>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
|
||||||
|
<rasd:Description>Memory Size</rasd:Description>
|
||||||
|
<rasd:ElementName>${vmMemoryMB}MB of memory</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>2</rasd:InstanceID>
|
||||||
|
<rasd:ResourceType>4</rasd:ResourceType>
|
||||||
|
<rasd:VirtualQuantity>${vmMemoryMB}</rasd:VirtualQuantity>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<rasd:Address>0</rasd:Address>
|
||||||
|
<rasd:Description>IDE Controller</rasd:Description>
|
||||||
|
<rasd:ElementName>VirtualIDEController 0</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>4</rasd:InstanceID>
|
||||||
|
<rasd:ResourceType>5</rasd:ResourceType>
|
||||||
|
</Item>
|
||||||
|
<Item ovf:required="false">
|
||||||
|
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
|
||||||
|
<rasd:ElementName>VirtualVideoCard</rasd:ElementName>
|
||||||
|
<rasd:InstanceID>5</rasd:InstanceID>
|
||||||
|
<rasd:ResourceType>24</rasd:ResourceType>
|
||||||
|
</Item>
|
||||||
|
${diskSection.diskItems}
|
||||||
|
${networkSection.nicsSection}
|
||||||
|
</VirtualHardwareSection>
|
||||||
|
<AnnotationSection ovf:required="false">
|
||||||
|
<Info>A human-readable annotation</Info>
|
||||||
|
<Annotation>${vmDescription}</Annotation>
|
||||||
|
</AnnotationSection>
|
||||||
|
</VirtualSystem>
|
||||||
|
</ovf:Envelope>`
|
||||||
|
}
|
@ -141,7 +141,7 @@ const filterDisks = disks => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function parseOVF(fileFragment, stringDeserializer) {
|
export async function parseOVF(fileFragment, stringDeserializer) {
|
||||||
const xmlString = stringDeserializer(await fileFragment.read(), 'utf-8')
|
const xmlString = stringDeserializer(await fileFragment.read(), 'utf-8')
|
||||||
return new Promise((resolve, reject) =>
|
return new Promise((resolve, reject) =>
|
||||||
xml2js.parseString(
|
xml2js.parseString(
|
144
packages/xo-vmdk-to-vhd/src/ova-schema/CIM_BootConfigSetting.xsd
Normal file
144
packages/xo-vmdk-to-vhd/src/ova-schema/CIM_BootConfigSetting.xsd
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<xs:schema xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:class="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootConfigSetting" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" elementFormDefault="qualified" targetNamespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootConfigSetting">
|
||||||
|
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
|
||||||
|
<xs:element name="InstanceID" type="cim:cimString"/>
|
||||||
|
<xs:element name="ElementName" type="cim:cimString"/>
|
||||||
|
<xs:element name="ChangeableType" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimUnsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ConfigurationName" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ComponentSetting" nillable="true" type="xs:anyType"/>
|
||||||
|
<xs:element name="SoID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="SoOrgID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Caption" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimString">
|
||||||
|
<xs:maxLength value="64"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Description" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Generation" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="ChangeBootOrder_INPUT">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" name="Source" nillable="true" type="cim:cimReference"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ChangeBootOrder_OUTPUT">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Job" nillable="true" type="cim:cimReference"/>
|
||||||
|
<xs:element name="ReturnValue" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedInt">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
<xs:enumeration value="5"/>
|
||||||
|
<xs:enumeration value="6"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedInt">
|
||||||
|
<xs:minInclusive value="7"/>
|
||||||
|
<xs:maxInclusive value="32767"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedInt">
|
||||||
|
<xs:minInclusive value="32768"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ValidateSettings_INPUT">
|
||||||
|
<xs:complexType/>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ValidateSettings_OUTPUT">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="ReturnValue" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedInt">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedInt">
|
||||||
|
<xs:minInclusive value="4"/>
|
||||||
|
<xs:maxInclusive value="32767"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedInt">
|
||||||
|
<xs:minInclusive value="32768"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CIM_BootConfigSetting" type="class:CIM_BootConfigSetting_Type"/>
|
||||||
|
<xs:complexType name="CIM_BootConfigSetting_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" ref="class:Caption"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ChangeableType"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:ComponentSetting"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ConfigurationName"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Description"/>
|
||||||
|
<xs:element ref="class:ElementName"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Generation"/>
|
||||||
|
<xs:element ref="class:InstanceID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SoID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SoOrgID"/>
|
||||||
|
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
@ -0,0 +1,71 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<xs:schema xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:class="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootSourceSetting" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" elementFormDefault="qualified" targetNamespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootSourceSetting">
|
||||||
|
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
|
||||||
|
<xs:element name="BootString" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="BIOSBootString" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="StructuredBootString" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="FailThroughSupported" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimUnsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InstanceID" type="cim:cimString"/>
|
||||||
|
<xs:element name="ElementName" type="cim:cimString"/>
|
||||||
|
<xs:element name="ChangeableType" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimUnsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ConfigurationName" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ComponentSetting" nillable="true" type="xs:anyType"/>
|
||||||
|
<xs:element name="SoID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="SoOrgID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Caption" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimString">
|
||||||
|
<xs:maxLength value="64"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Description" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Generation" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="CIM_BootSourceSetting" type="class:CIM_BootSourceSetting_Type"/>
|
||||||
|
<xs:complexType name="CIM_BootSourceSetting_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" ref="class:BIOSBootString"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:BootString"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Caption"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ChangeableType"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:ComponentSetting"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ConfigurationName"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Description"/>
|
||||||
|
<xs:element ref="class:ElementName"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:FailThroughSupported"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Generation"/>
|
||||||
|
<xs:element ref="class:InstanceID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SoID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SoOrgID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:StructuredBootString"/>
|
||||||
|
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
@ -0,0 +1,372 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<xs:schema xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:class="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_EthernetPortAllocationSettingData" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" elementFormDefault="qualified" targetNamespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_EthernetPortAllocationSettingData">
|
||||||
|
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
|
||||||
|
<xs:element name="DesiredVLANEndpointMode" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
<xs:enumeration value="5"/>
|
||||||
|
<xs:enumeration value="6"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="7"/>
|
||||||
|
<xs:maxInclusive value="32767"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32768"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="OtherEndpointMode" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="AllowedPriorities" nillable="true" type="cim:cimUnsignedShort"/>
|
||||||
|
<xs:element name="AllowedToReceiveMACAddresses" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="AllowedToReceiveVLANs" nillable="true" type="cim:cimUnsignedShort"/>
|
||||||
|
<xs:element name="AllowedToTransmitMACAddresses" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="AllowedToTransmitVLANs" nillable="true" type="cim:cimUnsignedShort"/>
|
||||||
|
<xs:element name="DefaultPortVID" nillable="true" type="cim:cimUnsignedShort"/>
|
||||||
|
<xs:element name="DefaultPriority" nillable="true" type="cim:cimUnsignedShort"/>
|
||||||
|
<xs:element name="GroupID" nillable="true" type="cim:cimUnsignedInt"/>
|
||||||
|
<xs:element name="ManagerID" nillable="true" type="cim:cimUnsignedInt"/>
|
||||||
|
<xs:element name="NetworkPortProfileID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="NetworkPortProfileIDType" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="5"/>
|
||||||
|
<xs:maxInclusive value="32767"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32768"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="OtherNetworkPortProfileIDTypeInfo" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="PortCorrelationID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="PortVID" nillable="true" type="cim:cimUnsignedShort"/>
|
||||||
|
<xs:element name="Promiscuous" nillable="true" type="cim:cimBoolean"/>
|
||||||
|
<xs:element name="ReceiveBandwidthLimit" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="ReceiveBandwidthReservation" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="SourceMACFilteringEnabled" nillable="true" type="cim:cimBoolean"/>
|
||||||
|
<xs:element name="VSITypeID" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimUnsignedInt">
|
||||||
|
<xs:maxInclusive value="16777215"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="VSITypeIDVersion" nillable="true" type="cim:cimUnsignedByte"/>
|
||||||
|
<xs:element name="ResourceType" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
<xs:enumeration value="5"/>
|
||||||
|
<xs:enumeration value="6"/>
|
||||||
|
<xs:enumeration value="7"/>
|
||||||
|
<xs:enumeration value="8"/>
|
||||||
|
<xs:enumeration value="9"/>
|
||||||
|
<xs:enumeration value="10"/>
|
||||||
|
<xs:enumeration value="11"/>
|
||||||
|
<xs:enumeration value="12"/>
|
||||||
|
<xs:enumeration value="13"/>
|
||||||
|
<xs:enumeration value="14"/>
|
||||||
|
<xs:enumeration value="15"/>
|
||||||
|
<xs:enumeration value="16"/>
|
||||||
|
<xs:enumeration value="17"/>
|
||||||
|
<xs:enumeration value="18"/>
|
||||||
|
<xs:enumeration value="19"/>
|
||||||
|
<xs:enumeration value="20"/>
|
||||||
|
<xs:enumeration value="21"/>
|
||||||
|
<xs:enumeration value="22"/>
|
||||||
|
<xs:enumeration value="23"/>
|
||||||
|
<xs:enumeration value="24"/>
|
||||||
|
<xs:enumeration value="25"/>
|
||||||
|
<xs:enumeration value="26"/>
|
||||||
|
<xs:enumeration value="27"/>
|
||||||
|
<xs:enumeration value="28"/>
|
||||||
|
<xs:enumeration value="29"/>
|
||||||
|
<xs:enumeration value="30"/>
|
||||||
|
<xs:enumeration value="31"/>
|
||||||
|
<xs:enumeration value="32"/>
|
||||||
|
<xs:enumeration value="33"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="34"/>
|
||||||
|
<xs:maxInclusive value="32767"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32768"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="OtherResourceType" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ResourceSubType" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="PoolID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ConsumerVisibility" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="5"/>
|
||||||
|
<xs:maxInclusive value="32766"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32767"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="HostResource" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="AllocationUnits" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="VirtualQuantity" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="Reservation" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="Limit" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="Weight" nillable="true" type="cim:cimUnsignedInt"/>
|
||||||
|
<xs:element name="AutomaticAllocation" nillable="true" type="cim:cimBoolean"/>
|
||||||
|
<xs:element name="AutomaticDeallocation" nillable="true" type="cim:cimBoolean"/>
|
||||||
|
<xs:element name="Parent" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Connection" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Address" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="MappingBehavior" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
<xs:enumeration value="5"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="6"/>
|
||||||
|
<xs:maxInclusive value="32766"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32767"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AddressOnParent" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="VirtualQuantityUnits" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="InstanceID" type="cim:cimString"/>
|
||||||
|
<xs:element name="ElementName" type="cim:cimString"/>
|
||||||
|
<xs:element name="ChangeableType" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimUnsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ConfigurationName" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ComponentSetting" nillable="true" type="xs:anyType"/>
|
||||||
|
<xs:element name="SoID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="SoOrgID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Caption" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimString">
|
||||||
|
<xs:maxLength value="64"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Description" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Generation" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="CIM_EthernetPortAllocationSettingData" type="class:CIM_EthernetPortAllocationSettingData_Type"/>
|
||||||
|
<xs:complexType name="CIM_EthernetPortAllocationSettingData_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" ref="class:Address"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AddressOnParent"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AllocationUnits"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:AllowedPriorities"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:AllowedToReceiveMACAddresses"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:AllowedToReceiveVLANs"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:AllowedToTransmitMACAddresses"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:AllowedToTransmitVLANs"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticAllocation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticDeallocation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Caption"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ChangeableType"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:ComponentSetting"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ConfigurationName"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:Connection"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ConsumerVisibility"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:DefaultPortVID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:DefaultPriority"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Description"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:DesiredVLANEndpointMode"/>
|
||||||
|
<xs:element ref="class:ElementName"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Generation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:GroupID"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:HostResource"/>
|
||||||
|
<xs:element ref="class:InstanceID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Limit"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ManagerID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:MappingBehavior"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:NetworkPortProfileID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:NetworkPortProfileIDType"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:OtherEndpointMode"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:OtherNetworkPortProfileIDTypeInfo"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:OtherResourceType"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Parent"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:PoolID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:PortCorrelationID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:PortVID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Promiscuous"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ReceiveBandwidthLimit"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ReceiveBandwidthReservation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Reservation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ResourceSubType"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ResourceType"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SoID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SoOrgID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SourceMACFilteringEnabled"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VSITypeID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VSITypeIDVersion"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VirtualQuantity"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VirtualQuantityUnits"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Weight"/>
|
||||||
|
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
@ -0,0 +1,220 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--Generated by WBEM Solutions, Inc. SDKPro 3.0.0-->
|
||||||
|
<xs:schema xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:class="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">
|
||||||
|
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
|
||||||
|
<xs:element name="ResourceType" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
<xs:enumeration value="5"/>
|
||||||
|
<xs:enumeration value="6"/>
|
||||||
|
<xs:enumeration value="7"/>
|
||||||
|
<xs:enumeration value="8"/>
|
||||||
|
<xs:enumeration value="9"/>
|
||||||
|
<xs:enumeration value="10"/>
|
||||||
|
<xs:enumeration value="11"/>
|
||||||
|
<xs:enumeration value="12"/>
|
||||||
|
<xs:enumeration value="13"/>
|
||||||
|
<xs:enumeration value="14"/>
|
||||||
|
<xs:enumeration value="15"/>
|
||||||
|
<xs:enumeration value="16"/>
|
||||||
|
<xs:enumeration value="17"/>
|
||||||
|
<xs:enumeration value="18"/>
|
||||||
|
<xs:enumeration value="19"/>
|
||||||
|
<xs:enumeration value="20"/>
|
||||||
|
<xs:enumeration value="21"/>
|
||||||
|
<xs:enumeration value="22"/>
|
||||||
|
<xs:enumeration value="23"/>
|
||||||
|
<xs:enumeration value="24"/>
|
||||||
|
<xs:enumeration value="25"/>
|
||||||
|
<xs:enumeration value="26"/>
|
||||||
|
<xs:enumeration value="27"/>
|
||||||
|
<xs:enumeration value="28"/>
|
||||||
|
<xs:enumeration value="29"/>
|
||||||
|
<xs:enumeration value="30"/>
|
||||||
|
<xs:enumeration value="31"/>
|
||||||
|
<xs:enumeration value="32"/>
|
||||||
|
<xs:enumeration value="33"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="34"/>
|
||||||
|
<xs:maxInclusive value="32767"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32768"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="OtherResourceType" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ResourceSubType" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="PoolID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ConsumerVisibility" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="5"/>
|
||||||
|
<xs:maxInclusive value="32766"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32767"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="HostResource" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="AllocationUnits" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="VirtualQuantity" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="Reservation" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="Limit" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="Weight" nillable="true" type="cim:cimUnsignedInt"/>
|
||||||
|
<xs:element name="AutomaticAllocation" nillable="true" type="cim:cimBoolean"/>
|
||||||
|
<xs:element name="AutomaticDeallocation" nillable="true" type="cim:cimBoolean"/>
|
||||||
|
<xs:element name="Parent" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Connection" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Address" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="MappingBehavior" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
<xs:enumeration value="5"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="6"/>
|
||||||
|
<xs:maxInclusive value="32766"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32767"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AddressOnParent" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="VirtualQuantityUnits" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="InstanceID" type="cim:cimString"/>
|
||||||
|
<xs:element name="ElementName" type="cim:cimString"/>
|
||||||
|
<xs:element name="Caption" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimString">
|
||||||
|
<xs:maxLength value="64"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Description" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="CIM_ResourceAllocationSettingData" type="class:CIM_ResourceAllocationSettingData_Type"/>
|
||||||
|
<xs:complexType name="CIM_ResourceAllocationSettingData_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" ref="class:Address"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AddressOnParent"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AllocationUnits"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticAllocation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticDeallocation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Caption"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:Connection"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ConsumerVisibility"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Description"/>
|
||||||
|
<xs:element ref="class:ElementName"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:HostResource"/>
|
||||||
|
<xs:element ref="class:InstanceID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Limit"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:MappingBehavior"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:OtherResourceType"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Parent"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:PoolID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Reservation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ResourceSubType"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ResourceType"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VirtualQuantity"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VirtualQuantityUnits"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Weight"/>
|
||||||
|
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
@ -0,0 +1,367 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<xs:schema xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:class="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_StorageAllocationSettingData" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" elementFormDefault="qualified" targetNamespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_StorageAllocationSettingData">
|
||||||
|
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
|
||||||
|
<xs:element name="VirtualResourceBlockSize" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="VirtualQuantity" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="VirtualQuantityUnits" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Access" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="4"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="HostResourceBlockSize" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="Reservation" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="Limit" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="HostExtentStartingAddress" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="HostExtentName" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="HostExtentNameFormat" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="7"/>
|
||||||
|
<xs:enumeration value="9"/>
|
||||||
|
<xs:enumeration value="10"/>
|
||||||
|
<xs:enumeration value="11"/>
|
||||||
|
<xs:enumeration value="12"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="2"/>
|
||||||
|
<xs:maxInclusive value="6"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="8"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="13"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="OtherHostExtentNameFormat" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="HostExtentNameNamespace" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
<xs:enumeration value="5"/>
|
||||||
|
<xs:enumeration value="6"/>
|
||||||
|
<xs:enumeration value="7"/>
|
||||||
|
<xs:enumeration value="8"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="9"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="OtherHostExtentNameNamespace" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ResourceType" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
<xs:enumeration value="5"/>
|
||||||
|
<xs:enumeration value="6"/>
|
||||||
|
<xs:enumeration value="7"/>
|
||||||
|
<xs:enumeration value="8"/>
|
||||||
|
<xs:enumeration value="9"/>
|
||||||
|
<xs:enumeration value="10"/>
|
||||||
|
<xs:enumeration value="11"/>
|
||||||
|
<xs:enumeration value="12"/>
|
||||||
|
<xs:enumeration value="13"/>
|
||||||
|
<xs:enumeration value="14"/>
|
||||||
|
<xs:enumeration value="15"/>
|
||||||
|
<xs:enumeration value="16"/>
|
||||||
|
<xs:enumeration value="17"/>
|
||||||
|
<xs:enumeration value="18"/>
|
||||||
|
<xs:enumeration value="19"/>
|
||||||
|
<xs:enumeration value="20"/>
|
||||||
|
<xs:enumeration value="21"/>
|
||||||
|
<xs:enumeration value="22"/>
|
||||||
|
<xs:enumeration value="23"/>
|
||||||
|
<xs:enumeration value="24"/>
|
||||||
|
<xs:enumeration value="25"/>
|
||||||
|
<xs:enumeration value="26"/>
|
||||||
|
<xs:enumeration value="27"/>
|
||||||
|
<xs:enumeration value="28"/>
|
||||||
|
<xs:enumeration value="29"/>
|
||||||
|
<xs:enumeration value="30"/>
|
||||||
|
<xs:enumeration value="31"/>
|
||||||
|
<xs:enumeration value="32"/>
|
||||||
|
<xs:enumeration value="33"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="34"/>
|
||||||
|
<xs:maxInclusive value="32767"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32768"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="OtherResourceType" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ResourceSubType" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="PoolID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ConsumerVisibility" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="5"/>
|
||||||
|
<xs:maxInclusive value="32766"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32767"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="HostResource" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="AllocationUnits" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Weight" nillable="true" type="cim:cimUnsignedInt"/>
|
||||||
|
<xs:element name="AutomaticAllocation" nillable="true" type="cim:cimBoolean"/>
|
||||||
|
<xs:element name="AutomaticDeallocation" nillable="true" type="cim:cimBoolean"/>
|
||||||
|
<xs:element name="Parent" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Connection" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Address" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="MappingBehavior" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
<xs:enumeration value="5"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="6"/>
|
||||||
|
<xs:maxInclusive value="32766"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:minInclusive value="32767"/>
|
||||||
|
<xs:maxInclusive value="65535"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AddressOnParent" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="InstanceID" type="cim:cimString"/>
|
||||||
|
<xs:element name="ElementName" type="cim:cimString"/>
|
||||||
|
<xs:element name="ChangeableType" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimUnsignedShort">
|
||||||
|
<xs:enumeration value="0"/>
|
||||||
|
<xs:enumeration value="1"/>
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ConfigurationName" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ComponentSetting" nillable="true" type="xs:anyType"/>
|
||||||
|
<xs:element name="SoID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="SoOrgID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Caption" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimString">
|
||||||
|
<xs:maxLength value="64"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Description" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Generation" nillable="true" type="cim:cimUnsignedLong"/>
|
||||||
|
<xs:element name="CIM_StorageAllocationSettingData" type="class:CIM_StorageAllocationSettingData_Type"/>
|
||||||
|
<xs:complexType name="CIM_StorageAllocationSettingData_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" ref="class:Access"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Address"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AddressOnParent"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AllocationUnits"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticAllocation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticDeallocation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Caption"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ChangeableType"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:ComponentSetting"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ConfigurationName"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:Connection"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ConsumerVisibility"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Description"/>
|
||||||
|
<xs:element ref="class:ElementName"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Generation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:HostExtentName"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:HostExtentNameFormat"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:HostExtentNameNamespace"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:HostExtentStartingAddress"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:HostResource"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:HostResourceBlockSize"/>
|
||||||
|
<xs:element ref="class:InstanceID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Limit"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:MappingBehavior"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:OtherHostExtentNameFormat"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:OtherHostExtentNameNamespace"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:OtherResourceType"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Parent"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:PoolID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Reservation"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ResourceSubType"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ResourceType"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SoID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SoOrgID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VirtualQuantity"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VirtualQuantityUnits"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VirtualResourceBlockSize"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Weight"/>
|
||||||
|
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
@ -0,0 +1,147 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--Generated by WBEM Solutions, Inc. SDKPro 3.0.0-->
|
||||||
|
<xs:schema xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:class="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData">
|
||||||
|
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
|
||||||
|
<xs:element name="VirtualSystemIdentifier" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="VirtualSystemType" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="Notes" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="CreationTime" nillable="true" type="cim:cimDateTime"/>
|
||||||
|
<xs:element name="ConfigurationID" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ConfigurationDataRoot" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="ConfigurationFile" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="SnapshotDataRoot" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="SuspendDataRoot" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="SwapFileDataRoot" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="LogDataRoot" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="AutomaticStartupAction" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:maxInclusive value="1"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AutomaticStartupActionDelay" nillable="true" type="cim:cimDateTime"/>
|
||||||
|
<xs:element name="AutomaticStartupActionSequenceNumber" nillable="true" type="cim:cimUnsignedShort"/>
|
||||||
|
<xs:element name="AutomaticShutdownAction" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:maxInclusive value="1"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AutomaticRecoveryAction" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimAnySimpleType">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:enumeration value="2"/>
|
||||||
|
<xs:enumeration value="3"/>
|
||||||
|
<xs:enumeration value="4"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:unsignedShort">
|
||||||
|
<xs:maxInclusive value="1"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="RecoveryFile" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="InstanceID" type="cim:cimString"/>
|
||||||
|
<xs:element name="ElementName" type="cim:cimString"/>
|
||||||
|
<xs:element name="Caption" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimString">
|
||||||
|
<xs:maxLength value="64"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Description" nillable="true" type="cim:cimString"/>
|
||||||
|
<xs:element name="CIM_VirtualSystemSettingData" type="class:CIM_VirtualSystemSettingData_Type"/>
|
||||||
|
<xs:complexType name="CIM_VirtualSystemSettingData_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticRecoveryAction"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticShutdownAction"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticStartupAction"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticStartupActionDelay"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:AutomaticStartupActionSequenceNumber"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Caption"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ConfigurationDataRoot"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ConfigurationFile"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:ConfigurationID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:CreationTime"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:Description"/>
|
||||||
|
<xs:element ref="class:ElementName"/>
|
||||||
|
<xs:element ref="class:InstanceID"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:LogDataRoot"/>
|
||||||
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:Notes"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:RecoveryFile"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SnapshotDataRoot"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SuspendDataRoot"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:SwapFileDataRoot"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VirtualSystemIdentifier"/>
|
||||||
|
<xs:element minOccurs="0" ref="class:VirtualSystemType"/>
|
||||||
|
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
229
packages/xo-vmdk-to-vhd/src/ova-schema/common.xsd
Normal file
229
packages/xo-vmdk-to-vhd/src/ova-schema/common.xsd
Normal file
@ -0,0 +1,229 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
|
||||||
|
<!-- DMTF Document number: DSP8004 -->
|
||||||
|
<!-- Status: Final -->
|
||||||
|
<!-- Copyright © 2007 Distributed Management Task Force, Inc. (DMTF). All rights reserved. -->
|
||||||
|
|
||||||
|
<xs:schema targetNamespace="http://schemas.dmtf.org/wbem/wscim/1/common"
|
||||||
|
xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common"
|
||||||
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
elementFormDefault="qualified">
|
||||||
|
|
||||||
|
<!-- The following are runtime attribute definitions -->
|
||||||
|
<xs:attribute name="Key" type="xs:boolean"/>
|
||||||
|
|
||||||
|
<xs:attribute name="Version" type="xs:string"/>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- The following section defines the extended WS-CIM datatypes -->
|
||||||
|
<xs:complexType name="cimDateTime">
|
||||||
|
<xs:choice>
|
||||||
|
<xs:element name="CIM_DateTime" type="xs:string" nillable="true"/>
|
||||||
|
<xs:element name="Interval" type="xs:duration"/>
|
||||||
|
<xs:element name="Date" type="xs:date" />
|
||||||
|
<xs:element name="Time" type="xs:time" />
|
||||||
|
<xs:element name="Datetime" type="xs:dateTime"/>
|
||||||
|
</xs:choice>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimUnsignedByte">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:unsignedByte">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimByte">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:byte">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimUnsignedShort">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:unsignedShort">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimShort">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:short">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="cimUnsignedInt">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:unsignedInt">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimInt">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:int">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimUnsignedLong">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:unsignedLong">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimLong">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:long">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimString">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:string">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimBoolean">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:boolean">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimFloat">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:float">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimDouble">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:double">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimChar16">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:restriction base="cim:cimString">
|
||||||
|
<xs:maxLength value="1"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimBase64Binary">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:base64Binary">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="cimReference">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimHexBinary">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:hexBinary">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<xs:complexType name="cimAnySimpleType">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:anySimpleType">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- The following datatypes are used exclusively to define metadata fragments -->
|
||||||
|
<xs:attribute name="qualifier" type="xs:boolean"/>
|
||||||
|
|
||||||
|
<xs:complexType name="qualifierString">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="cim:cimString">
|
||||||
|
<xs:attribute ref="cim:qualifier" use="required"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="qualifierBoolean">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="cim:cimBoolean">
|
||||||
|
<xs:attribute ref="cim:qualifier" use="required"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="qualifierUInt32">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="cim:cimUnsignedInt">
|
||||||
|
<xs:attribute ref="cim:qualifier" use="required"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="qualifierSInt64">
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="cim:cimLong">
|
||||||
|
<xs:attribute ref="cim:qualifier" use="required"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:complexType name="qualifierSArray">
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="cim:qualifierString"/>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- The following element is to be used only for defining metadata -->
|
||||||
|
<xs:element name="DefaultValue" type="xs:anySimpleType" />
|
||||||
|
|
||||||
|
</xs:schema>
|
||||||
|
|
884
packages/xo-vmdk-to-vhd/src/ova-schema/dsp8023_1.1.1.xsd
Normal file
884
packages/xo-vmdk-to-vhd/src/ova-schema/dsp8023_1.1.1.xsd
Normal file
@ -0,0 +1,884 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
DMTF - Distributed Management Task Force, Inc. - http://www.dmtf.org
|
||||||
|
|
||||||
|
Release URLs:
|
||||||
|
http://schemas.dmtf.org/ovf/envelope/1/dsp8023_1.1.xsd
|
||||||
|
|
||||||
|
Document number: DSP8023
|
||||||
|
Date: 2013-08-22
|
||||||
|
Version: 1.1.1
|
||||||
|
Document status: DMTF Standard
|
||||||
|
|
||||||
|
Title: OVF Envelope XSD
|
||||||
|
XML Schema Specification for OVF Envelope
|
||||||
|
|
||||||
|
Document type: Specification (W3C XML Schema Document)
|
||||||
|
Document language: en-US
|
||||||
|
|
||||||
|
Contact group: ovfwg@dmtf.org
|
||||||
|
|
||||||
|
Copyright notice:
|
||||||
|
Copyright (C) 2008-2013 Distributed Management Task Force, Inc. (DMTF). All rights reserved. DMTF is a not-for-profit
|
||||||
|
association of industry members dedicated to promoting enterprise and systems management and interoperability. Members
|
||||||
|
and non-members may reproduce DMTF specifications and documents for uses consistent with this purpose, provided that
|
||||||
|
correct attribution is given. As DMTF specifications may be revised from time to time, the particular version and
|
||||||
|
release date should always be noted. Implementation of certain elements of this standard or proposed standard may be
|
||||||
|
subject to third party patent rights, including provisional patent rights (herein "patent rights"). DMTF makes no
|
||||||
|
representations to users of the standard as to the existence of such rights, and is not responsible to recognize,
|
||||||
|
disclose, or identify any or all such third party patent right, owners or claimants, nor for any incomplete or
|
||||||
|
inaccurate identification or disclosure of such rights, owners or claimants. DMTF shall have no liability to any party,
|
||||||
|
in any manner or circumstance, under any legal theory whatsoever, for failure to recognize, disclose, or identify any
|
||||||
|
such third party patent rights, or for such party's reliance on the standard or incorporation thereof in its product,
|
||||||
|
protocols or testing procedures. DMTF shall have no liability to any party implementing such standard, whether such
|
||||||
|
implementation is foreseeable or not, nor to any patent owner or claimant, and shall have no liability or responsibility
|
||||||
|
for costs or losses incurred if a standard is withdrawn or modified after publication, and shall be indemnified and held
|
||||||
|
harmless by any party implementing the standard from any and all claims of infringement by a patent owner for such
|
||||||
|
implementations. For information about patents held by third-parties which have notified the DMTF that, in their
|
||||||
|
opinion, such patent may relate to or impact implementations of DMTF standards, visit
|
||||||
|
http://www.dmtf.org/about/policies/disclosures.php.
|
||||||
|
|
||||||
|
Compatibility:
|
||||||
|
This XML schema maintains forward compatibility w.r.t. its XML instance documents as follows: An updated minor version of
|
||||||
|
the XML schema (e.g. "m.n+1.*") shall successfully validate XML instance documents that validated successfully using the
|
||||||
|
original version of the XML schema (e.g. "m.n.*"). An XML instance document that successfully validates against an updated
|
||||||
|
minor version of the XML schema may or may not validate against the original version of the XML schema. In other words,
|
||||||
|
the XML schema may introduce additional functionality as long as it does not break existing XML instance documents.
|
||||||
|
|
||||||
|
Change log:
|
||||||
|
1.0.0 - 2009-01-15
|
||||||
|
1.1.0 - 2009-12-22 - DMTF Standard
|
||||||
|
1.1.1 - 2013-08-22 - Released as a DMTF Standard
|
||||||
|
changed transport attribute from 'comma separated' to 'space separated' to match DSP0243
|
||||||
|
updated Introduction
|
||||||
|
added Compatibility statement line 41
|
||||||
|
changed description on startup order to "Startup order. Allows the package author the capability of specifying the startup order of the virtual systems. “
|
||||||
|
changed initialBootStopDelay to use="required" to align with DSP0243
|
||||||
|
|
||||||
|
-->
|
||||||
|
<xs:schema xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" targetNamespace="http://schemas.dmtf.org/ovf/envelope/1" elementFormDefault="qualified" attributeFormDefault="qualified">
|
||||||
|
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
|
||||||
|
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="common.xsd"/>
|
||||||
|
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" schemaLocation="CIM_VirtualSystemSettingData.xsd"/>
|
||||||
|
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" schemaLocation="CIM_ResourceAllocationSettingData.xsd"/>
|
||||||
|
<xs:attribute name="required" type="xs:boolean" default="true">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Determines whether import should fail if the Section is
|
||||||
|
not understood</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="transport" type="xs:string" default="">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Space separated list of supported transport types</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:element name="Envelope" type="ovf:EnvelopeType">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Root element of OVF Descriptor</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="EnvelopeType">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Root OVF descriptor type</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="References" type="ovf:References_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>References to all external files</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element ref="ovf:Section" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Package level meta-data</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element ref="ovf:Content">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Content: A VirtualSystem or a
|
||||||
|
VirtualSystemCollection</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Strings" type="ovf:Strings_Type" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Localized string resource bundles
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<!-- xs:any with namespace ##other extension point not present here,
|
||||||
|
extensions at outermost Envelope level should be done by defining
|
||||||
|
new members of the ovf:Section substitution group -->
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute ref="xml:lang" use="optional" default="en-US"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:complexType name="References_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Type for list of external resources</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="File" type="ovf:File_Type" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:complexType name="File_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Type for an external reference to a
|
||||||
|
resource</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="id" type="xs:string" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Reference key used in other parts of the
|
||||||
|
package</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="href" type="xs:anyURI" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Location of external resource</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="size" type="xs:unsignedLong" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Size in bytes of the files (if
|
||||||
|
known)</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="compression" type="xs:string" use="optional" default="">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Compression type (gzip, bzip2, or none if empty or not
|
||||||
|
specified)</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="chunkSize" type="xs:long" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Chunk size (except for last chunk)</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Content" type="ovf:Content_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Base element for content types. This is the head the
|
||||||
|
subsitution group</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="Content_Type" abstract="true">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Base class for content</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Info" type="ovf:Msg_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Info element describes the meaning of the content,
|
||||||
|
this is typically shown if the type is not understood by an
|
||||||
|
application</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Name" type="ovf:Msg_Type" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>An optional localizable display name of the content
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element ref="ovf:Section" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Content body is a list of Sections
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<!-- xs:any with namespace ##other extension point not present here,
|
||||||
|
extensions at Content level should be done by defining new members
|
||||||
|
of the ovf:Section substitution group -->
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="id" type="xs:string" use="required"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="VirtualSystem" type="ovf:VirtualSystem_Type" substitutionGroup="ovf:Content">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Content since VirtualSystem_Type
|
||||||
|
is a derivation of Content_Type </xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="VirtualSystem_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Content describing a virtual system</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Content_Type"/>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="VirtualSystemCollection" type="ovf:VirtualSystemCollection_Type" substitutionGroup="ovf:Content">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Content since VirtualSystemCollection_Type
|
||||||
|
is a derivation of Content_Type </xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="VirtualSystemCollection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>A collection of Content.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Content_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element ref="ovf:Content" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<!-- STRINGS -->
|
||||||
|
<xs:element name="Strings" type="ovf:Strings_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Root element of I18N string bundle</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="Strings_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Type for string resource bundle</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Msg" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Resource bundle element</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:string">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>String element value</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:attribute name="msgid" type="xs:string" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>String element identifier
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute ref="xml:lang">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Locale for this string resource
|
||||||
|
bundle</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="fileRef" type="xs:string" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Reference to external resource
|
||||||
|
bundle</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
<!--- SECTION -->
|
||||||
|
<xs:element name="Section" type="ovf:Section_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Base elements for OVF sections. This is the head of the
|
||||||
|
substitution group.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="Section_Type" abstract="true">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Base type for Sections, subclassing this is the most
|
||||||
|
common form of extensibility. Subtypes define more specific
|
||||||
|
elements.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:element name="Info" type="ovf:Msg_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Info element describes the meaning of the Section,
|
||||||
|
this is typically shown if the Section is not understood by an
|
||||||
|
application</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute ref="ovf:required" use="optional"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:complexType name="Msg_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Type for localizable string</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:string">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Default string value</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:attribute name="msgid" type="xs:string" use="optional" default="">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Identifier for lookup in string resource bundle
|
||||||
|
for alternate locale</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<!-- CORE SECTIONS -->
|
||||||
|
<xs:element name="AnnotationSection" type="ovf:AnnotationSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since
|
||||||
|
AnnotationSection_Type is a derivation of Section_Type
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="AnnotationSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>User defined annotation</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Annotation" type="ovf:Msg_Type"/>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ProductSection" type="ovf:ProductSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since ProductSection_Type
|
||||||
|
is a derivation of Section_Type </xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="ProductSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Product information for a virtual
|
||||||
|
appliance</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Product" type="ovf:Msg_Type" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Name of product</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Vendor" type="ovf:Msg_Type" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Name of product vendor</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Version" type="cim:cimString" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Product version, short form</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="FullVersion" type="cim:cimString" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Product version, long form</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ProductUrl" type="cim:cimString" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>URL resolving to product description</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="VendorUrl" type="cim:cimString" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>URL resolving to vendor description</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AppUrl" type="cim:cimString" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Experimental: URL resolving to deployed product instance</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Icon" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Experimental: Display icon for product</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="height" type="xs:unsignedShort" use="optional"/>
|
||||||
|
<xs:attribute name="width" type="xs:unsignedShort" use="optional"/>
|
||||||
|
<xs:attribute name="mimeType" type="xs:string" use="optional"/>
|
||||||
|
<xs:attribute name="fileRef" type="xs:string" use="required"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Properties for application-level
|
||||||
|
customization</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:element name="Category" type="ovf:Msg_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Property grouping
|
||||||
|
delimiter</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Property">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Property element</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Label" type="ovf:Msg_Type" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Short description of
|
||||||
|
property</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Description" type="ovf:Msg_Type" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Description of
|
||||||
|
property</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Value" type="ovf:PropertyConfigurationValue_Type" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Alternative default
|
||||||
|
property values for different
|
||||||
|
configuration</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="key" type="xs:string" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Property
|
||||||
|
identifier</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="type" type="xs:string" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Property
|
||||||
|
type</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="qualifiers" type="xs:string" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>A comma-separated set of type
|
||||||
|
qualifiers</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="userConfigurable" type="xs:boolean" use="optional" default="false">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Determines whether the property
|
||||||
|
value is configurable during
|
||||||
|
installation</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="value" type="xs:string" use="optional" default="">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Default value for
|
||||||
|
property</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="password" type="xs:boolean" use="optional" default="false">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Determines whether the property
|
||||||
|
value should be obscured during deployment
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:choice>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="class" type="xs:string" use="optional" default="">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Property identifier prefix</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="instance" type="xs:string" use="optional" default="">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Property identifier suffix</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:complexType name="PropertyConfigurationValue_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Type for alternative default values for properties when
|
||||||
|
DeploymentOptionSection is used</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="value" type="xs:string" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Alternative default property value</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="configuration" type="xs:string" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Configuration from DeploymentOptionSection in which
|
||||||
|
this value is default</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="NetworkSection" type="ovf:NetworkSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since NetworkSection_Type
|
||||||
|
is a derivation of Section_Type </xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="NetworkSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Descriptions of logical networks used within the
|
||||||
|
package</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Network" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Description" type="ovf:Msg_Type" minOccurs="0"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="name" type="xs:string" use="required"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="DiskSection" type="ovf:DiskSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since DiskSection_Type is
|
||||||
|
a derivation of Section_Type </xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="DiskSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Descriptions of virtual disks used within the
|
||||||
|
package</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Disk" type="ovf:VirtualDiskDesc_Type" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:complexType name="VirtualDiskDesc_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Type for virtual disk descriptor</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="diskId" type="xs:string" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Identifier for virtual disk</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="fileRef" type="xs:string" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Reference to virtual disk content. If not specified a
|
||||||
|
blank virtual disk is created of size given by capacity
|
||||||
|
attribute</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="capacity" type="xs:string" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Virtual disk capacity, can be specified as either an
|
||||||
|
xs:long size or as a reference to a property using ${property_name}.
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="capacityAllocationUnits" type="xs:string" use="optional" default="byte">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Unit of allocation for ovf:capacity. If not specified
|
||||||
|
default value is bytes. Value shall match a recognized value for the
|
||||||
|
UNITS qualifier in DSP0004.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="format" type="xs:string" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Format of virtual disk given as a URI that identifies
|
||||||
|
the disk type</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="populatedSize" type="xs:long" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Estimated populated size of disk in
|
||||||
|
bytes</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="parentRef" type="xs:string" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Reference to potential parent disk</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="OperatingSystemSection" type="ovf:OperatingSystemSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since
|
||||||
|
OperatingSystemSection_Type is a derivation of Section_Type
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="OperatingSystemSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Specification of the operating system installed in the
|
||||||
|
guest</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Description" type="ovf:Msg_Type" minOccurs="0"/>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedShort" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Identifier defined by the
|
||||||
|
CIM_OperatingSystem.OsType enumeration</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="version" type="xs:string" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Version defined by the
|
||||||
|
CIM_OperatingSystem.Version field</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="EulaSection" type="ovf:EulaSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since EulaSection_Type is
|
||||||
|
a derivation of Section_Type </xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="EulaSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>End-User License Agreement</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="License" type="ovf:Msg_Type"/>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="VirtualHardwareSection" type="ovf:VirtualHardwareSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since
|
||||||
|
VirtualHardwareSection_Type is a derivation of Section_Type
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="VirtualHardwareSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Specifies virtual hardware requirements for a virtual
|
||||||
|
machine</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="System" type="ovf:VSSD_Type" minOccurs="0"/>
|
||||||
|
<xs:element name="Item" type="ovf:RASD_Type" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="id" type="xs:string" use="optional" default="">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Unique identifier of this VirtualHardwareSection
|
||||||
|
(within a VirtualSystem)</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute ref="ovf:transport" use="optional"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ResourceAllocationSection" type="ovf:ResourceAllocationSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since
|
||||||
|
ResourceAllocationSection_Type is a derivation of Section_Type
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="ResourceAllocationSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Resource constraints on a
|
||||||
|
VirtualSystemCollection</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Item" type="ovf:RASD_Type" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="InstallSection" type="ovf:InstallSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since InstallSection_Type
|
||||||
|
is a derivation of Section_Type </xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="InstallSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>If present indicates that the virtual machine needs to be
|
||||||
|
initially booted to install and configure the software</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="initialBootStopDelay" type="xs:unsignedShort" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Delay in seconds to wait for power off to
|
||||||
|
complete after initial boot</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="StartupSection" type="ovf:StartupSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since StartupSection_Type
|
||||||
|
is a derivation of Section_Type </xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="StartupSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Specifies the order in which entities in a
|
||||||
|
VirtualSystemCollection are powered on and shut down</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="id" type="xs:string" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Unique identifier of
|
||||||
|
the content (within a VirtualSystemCollection)
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="order" type="xs:unsignedShort" use="required">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Startup order. Allows the package author the capability of specifying the startup order of the virtual systems.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="startDelay" type="xs:unsignedShort" use="optional" default="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Delay in seconds to wait for power
|
||||||
|
on to complete</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="waitingForGuest" type="xs:boolean" use="optional" default="false">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Resumes power-on sequence if guest
|
||||||
|
software reports ok</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="stopDelay" type="xs:unsignedShort" use="optional" default="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Delay in seconds to wait for power
|
||||||
|
off to complete</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="startAction" type="xs:string" use="optional" default="powerOn">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Start action to use, valid values
|
||||||
|
are: 'powerOn', 'none' </xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="stopAction" type="xs:string" use="optional" default="powerOff">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Stop action to use, valid values
|
||||||
|
are: ''powerOff' , 'guestShutdown',
|
||||||
|
'none'</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="DeploymentOptionSection" type="ovf:DeploymentOptionSection_Type" substitutionGroup="ovf:Section">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Element substitutable for Section since
|
||||||
|
DeploymentOptionSection_Type is a derivation of Section_Type
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="DeploymentOptionSection_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Enumeration of discrete deployment
|
||||||
|
options</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="ovf:Section_Type">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Configuration" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Label" type="ovf:Msg_Type"/>
|
||||||
|
<xs:element name="Description" type="ovf:Msg_Type"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="id" type="xs:string" use="required"/>
|
||||||
|
<xs:attribute name="default" type="xs:boolean" use="optional" default="false"/>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:complexType name="VSSD_Type">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Wrapper for
|
||||||
|
CIM_VirtualSystemSettingData_Type</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="vssd:CIM_VirtualSystemSettingData_Type">
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:complexType name="RASD_Type">
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Wrapper for
|
||||||
|
CIM_ResourceAllocationSettingData_Type</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:extension base="rasd:CIM_ResourceAllocationSettingData_Type">
|
||||||
|
<xs:attribute name="required" type="xs:boolean" use="optional" default="true">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Determines whether import should fail if entry
|
||||||
|
is not understood</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="configuration" type="xs:string" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Configuration from DeploymentOptionSection this
|
||||||
|
entry is valid for</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="bound" type="xs:string" use="optional">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>States that this entry is a range
|
||||||
|
marker</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
119
packages/xo-vmdk-to-vhd/src/ova-schema/xenc-schema-11.xsd
Normal file
119
packages/xo-vmdk-to-vhd/src/ova-schema/xenc-schema-11.xsd
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
#
|
||||||
|
# Copyright ©[2011] World Wide Web Consortium
|
||||||
|
# (Massachusetts Institute of Technology,
|
||||||
|
# European Research Consortium for Informatics and Mathematics,
|
||||||
|
# Keio University). All Rights Reserved.
|
||||||
|
# This work is distributed under the W3C® Software License [1] in the
|
||||||
|
# hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
||||||
|
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
# PURPOSE.
|
||||||
|
# [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
|
||||||
|
#
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN"
|
||||||
|
"http://www.w3.org/2001/XMLSchema.dtd"
|
||||||
|
[
|
||||||
|
<!ATTLIST schema
|
||||||
|
xmlns:xenc CDATA #FIXED 'http://www.w3.org/2001/04/xmlenc#'
|
||||||
|
xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'
|
||||||
|
xmlns:xenc11 CDATA #FIXED 'http://www.w3.org/2009/xmlenc11#'>
|
||||||
|
<!ENTITY xenc 'http://www.w3.org/2001/04/xmlenc#'>
|
||||||
|
<!ENTITY % p ''>
|
||||||
|
<!ENTITY % s ''>
|
||||||
|
]>
|
||||||
|
|
||||||
|
<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'
|
||||||
|
xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'
|
||||||
|
xmlns:xenc11='http://www.w3.org/2009/xmlenc11#'
|
||||||
|
xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
|
||||||
|
targetNamespace='http://www.w3.org/2009/xmlenc11#'
|
||||||
|
elementFormDefault='qualified'>
|
||||||
|
|
||||||
|
<import namespace='http://www.w3.org/2000/09/xmldsig#'
|
||||||
|
schemaLocation='http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd'/>
|
||||||
|
|
||||||
|
<import namespace='http://www.w3.org/2001/04/xmlenc#'
|
||||||
|
schemaLocation='http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd'/>
|
||||||
|
|
||||||
|
<element name="ConcatKDFParams" type="xenc11:ConcatKDFParamsType"/>
|
||||||
|
<complexType name="ConcatKDFParamsType">
|
||||||
|
<sequence>
|
||||||
|
<element ref="ds:DigestMethod"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="AlgorithmID" type="hexBinary"/>
|
||||||
|
<attribute name="PartyUInfo" type="hexBinary"/>
|
||||||
|
<attribute name="PartyVInfo" type="hexBinary"/>
|
||||||
|
<attribute name="SuppPubInfo" type="hexBinary"/>
|
||||||
|
<attribute name="SuppPrivInfo" type="hexBinary"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="DerivedKey" type="xenc11:DerivedKeyType"/>
|
||||||
|
<complexType name="DerivedKeyType">
|
||||||
|
<sequence>
|
||||||
|
<element ref="xenc11:KeyDerivationMethod" minOccurs="0"/>
|
||||||
|
<element ref="xenc:ReferenceList" minOccurs="0"/>
|
||||||
|
<element name="DerivedKeyName" type="string" minOccurs="0"/>
|
||||||
|
<element name="MasterKeyName" type="string" minOccurs="0"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Recipient" type="string" use="optional"/>
|
||||||
|
<attribute name="Id" type="ID" use="optional"/>
|
||||||
|
<attribute name="Type" type="anyURI" use="optional"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="KeyDerivationMethod" type="xenc11:KeyDerivationMethodType"/>
|
||||||
|
<complexType name="KeyDerivationMethodType">
|
||||||
|
<sequence>
|
||||||
|
<any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="PBKDF2-params" type="xenc11:PBKDF2ParameterType"/>
|
||||||
|
|
||||||
|
<complexType name="AlgorithmIdentifierType">
|
||||||
|
<sequence>
|
||||||
|
<element name="Parameters" minOccurs="0"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Algorithm" type="anyURI" use="required" />
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<complexType name="PRFAlgorithmIdentifierType">
|
||||||
|
<complexContent>
|
||||||
|
<restriction base="xenc11:AlgorithmIdentifierType">
|
||||||
|
<attribute name="Algorithm" type="anyURI" use="required" />
|
||||||
|
</restriction>
|
||||||
|
</complexContent>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<complexType name="PBKDF2ParameterType">
|
||||||
|
<sequence>
|
||||||
|
<element name="Salt">
|
||||||
|
<complexType>
|
||||||
|
<choice>
|
||||||
|
<element name="Specified" type="base64Binary"/>
|
||||||
|
<element name="OtherSource" type="xenc11:AlgorithmIdentifierType"/>
|
||||||
|
</choice>
|
||||||
|
</complexType>
|
||||||
|
</element>
|
||||||
|
<element name="IterationCount" type="positiveInteger"/>
|
||||||
|
<element name="KeyLength" type="positiveInteger"/>
|
||||||
|
<element name="PRF" type="xenc11:PRFAlgorithmIdentifierType"/>
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="MGF" type="xenc11:MGFType"/>
|
||||||
|
<complexType name="MGFType">
|
||||||
|
<complexContent>
|
||||||
|
<restriction base="xenc11:AlgorithmIdentifierType">
|
||||||
|
<attribute name="Algorithm" type="anyURI" use="required" />
|
||||||
|
</restriction>
|
||||||
|
</complexContent>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
|
146
packages/xo-vmdk-to-vhd/src/ova-schema/xenc-schema.xsd
Normal file
146
packages/xo-vmdk-to-vhd/src/ova-schema/xenc-schema.xsd
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN"
|
||||||
|
"http://www.w3.org/2001/XMLSchema.dtd"
|
||||||
|
[
|
||||||
|
<!ATTLIST schema
|
||||||
|
xmlns:xenc CDATA #FIXED 'http://www.w3.org/2001/04/xmlenc#'
|
||||||
|
xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'>
|
||||||
|
<!ENTITY xenc 'http://www.w3.org/2001/04/xmlenc#'>
|
||||||
|
<!ENTITY % p ''>
|
||||||
|
<!ENTITY % s ''>
|
||||||
|
]>
|
||||||
|
|
||||||
|
<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'
|
||||||
|
xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'
|
||||||
|
xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
|
||||||
|
targetNamespace='http://www.w3.org/2001/04/xmlenc#'
|
||||||
|
elementFormDefault='qualified'>
|
||||||
|
|
||||||
|
<import namespace='http://www.w3.org/2000/09/xmldsig#'
|
||||||
|
schemaLocation='http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd'/>
|
||||||
|
|
||||||
|
<complexType name='EncryptedType' abstract='true'>
|
||||||
|
<sequence>
|
||||||
|
<element name='EncryptionMethod' type='xenc:EncryptionMethodType'
|
||||||
|
minOccurs='0'/>
|
||||||
|
<element ref='ds:KeyInfo' minOccurs='0'/>
|
||||||
|
<element ref='xenc:CipherData'/>
|
||||||
|
<element ref='xenc:EncryptionProperties' minOccurs='0'/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name='Id' type='ID' use='optional'/>
|
||||||
|
<attribute name='Type' type='anyURI' use='optional'/>
|
||||||
|
<attribute name='MimeType' type='string' use='optional'/>
|
||||||
|
<attribute name='Encoding' type='anyURI' use='optional'/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<complexType name='EncryptionMethodType' mixed='true'>
|
||||||
|
<sequence>
|
||||||
|
<element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/>
|
||||||
|
<element name='OAEPparams' minOccurs='0' type='base64Binary'/>
|
||||||
|
<any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name='Algorithm' type='anyURI' use='required'/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<simpleType name='KeySizeType'>
|
||||||
|
<restriction base="integer"/>
|
||||||
|
</simpleType>
|
||||||
|
|
||||||
|
<element name='CipherData' type='xenc:CipherDataType'/>
|
||||||
|
<complexType name='CipherDataType'>
|
||||||
|
<choice>
|
||||||
|
<element name='CipherValue' type='base64Binary'/>
|
||||||
|
<element ref='xenc:CipherReference'/>
|
||||||
|
</choice>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name='CipherReference' type='xenc:CipherReferenceType'/>
|
||||||
|
<complexType name='CipherReferenceType'>
|
||||||
|
<choice>
|
||||||
|
<element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>
|
||||||
|
</choice>
|
||||||
|
<attribute name='URI' type='anyURI' use='required'/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<complexType name='TransformsType'>
|
||||||
|
<sequence>
|
||||||
|
<element ref='ds:Transform' maxOccurs='unbounded'/>
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<element name='EncryptedData' type='xenc:EncryptedDataType'/>
|
||||||
|
<complexType name='EncryptedDataType'>
|
||||||
|
<complexContent>
|
||||||
|
<extension base='xenc:EncryptedType'>
|
||||||
|
</extension>
|
||||||
|
</complexContent>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- Children of ds:KeyInfo -->
|
||||||
|
|
||||||
|
<element name='EncryptedKey' type='xenc:EncryptedKeyType'/>
|
||||||
|
<complexType name='EncryptedKeyType'>
|
||||||
|
<complexContent>
|
||||||
|
<extension base='xenc:EncryptedType'>
|
||||||
|
<sequence>
|
||||||
|
<element ref='xenc:ReferenceList' minOccurs='0'/>
|
||||||
|
<element name='CarriedKeyName' type='string' minOccurs='0'/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name='Recipient' type='string'
|
||||||
|
use='optional'/>
|
||||||
|
</extension>
|
||||||
|
</complexContent>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="AgreementMethod" type="xenc:AgreementMethodType"/>
|
||||||
|
<complexType name="AgreementMethodType" mixed="true">
|
||||||
|
<sequence>
|
||||||
|
<element name="KA-Nonce" minOccurs="0" type="base64Binary"/>
|
||||||
|
<!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
|
||||||
|
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
|
||||||
|
<element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- End Children of ds:KeyInfo -->
|
||||||
|
|
||||||
|
<element name='ReferenceList'>
|
||||||
|
<complexType>
|
||||||
|
<choice minOccurs='1' maxOccurs='unbounded'>
|
||||||
|
<element name='DataReference' type='xenc:ReferenceType'/>
|
||||||
|
<element name='KeyReference' type='xenc:ReferenceType'/>
|
||||||
|
</choice>
|
||||||
|
</complexType>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<complexType name='ReferenceType'>
|
||||||
|
<sequence>
|
||||||
|
<any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name='URI' type='anyURI' use='required'/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/>
|
||||||
|
<complexType name='EncryptionPropertiesType'>
|
||||||
|
<sequence>
|
||||||
|
<element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name='Id' type='ID' use='optional'/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>
|
||||||
|
<complexType name='EncryptionPropertyType' mixed='true'>
|
||||||
|
<choice maxOccurs='unbounded'>
|
||||||
|
<any namespace='##other' processContents='lax'/>
|
||||||
|
</choice>
|
||||||
|
<attribute name='Target' type='anyURI' use='optional'/>
|
||||||
|
<attribute name='Id' type='ID' use='optional'/>
|
||||||
|
<anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
</schema>
|
||||||
|
|
287
packages/xo-vmdk-to-vhd/src/ova-schema/xml.xsd
Normal file
287
packages/xo-vmdk-to-vhd/src/ova-schema/xml.xsd
Normal file
@ -0,0 +1,287 @@
|
|||||||
|
<?xml version='1.0'?>
|
||||||
|
<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
|
||||||
|
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
|
||||||
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns ="http://www.w3.org/1999/xhtml"
|
||||||
|
xml:lang="en">
|
||||||
|
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
<h1>About the XML namespace</h1>
|
||||||
|
|
||||||
|
<div class="bodytext">
|
||||||
|
<p>
|
||||||
|
This schema document describes the XML namespace, in a form
|
||||||
|
suitable for import by other schema documents.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
See <a href="http://www.w3.org/XML/1998/namespace.html">
|
||||||
|
http://www.w3.org/XML/1998/namespace.html</a> and
|
||||||
|
<a href="http://www.w3.org/TR/REC-xml">
|
||||||
|
http://www.w3.org/TR/REC-xml</a> for information
|
||||||
|
about this namespace.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Note that local names in this namespace are intended to be
|
||||||
|
defined only by the World Wide Web Consortium or its subgroups.
|
||||||
|
The names currently defined in this namespace are listed below.
|
||||||
|
They should not be used with conflicting semantics by any Working
|
||||||
|
Group, specification, or document instance.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
See further below in this document for more information about <a
|
||||||
|
href="#usage">how to refer to this schema document from your own
|
||||||
|
XSD schema documents</a> and about <a href="#nsversioning">the
|
||||||
|
namespace-versioning policy governing this schema document</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
|
||||||
|
<xs:attribute name="lang">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3>lang (as an attribute name)</h3>
|
||||||
|
<p>
|
||||||
|
denotes an attribute whose value
|
||||||
|
is a language code for the natural language of the content of
|
||||||
|
any element; its value is inherited. This name is reserved
|
||||||
|
by virtue of its definition in the XML specification.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Notes</h4>
|
||||||
|
<p>
|
||||||
|
Attempting to install the relevant ISO 2- and 3-letter
|
||||||
|
codes as the enumerated possible values is probably never
|
||||||
|
going to be a realistic possibility.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
|
||||||
|
http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
|
||||||
|
and the IANA language subtag registry at
|
||||||
|
<a href="http://www.iana.org/assignments/language-subtag-registry">
|
||||||
|
http://www.iana.org/assignments/language-subtag-registry</a>
|
||||||
|
for further information.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The union allows for the 'un-declaration' of xml:lang with
|
||||||
|
the empty string.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union memberTypes="xs:language">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value=""/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:attribute>
|
||||||
|
|
||||||
|
<xs:attribute name="space">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3>space (as an attribute name)</h3>
|
||||||
|
<p>
|
||||||
|
denotes an attribute whose
|
||||||
|
value is a keyword indicating what whitespace processing
|
||||||
|
discipline is intended for the content of the element; its
|
||||||
|
value is inherited. This name is reserved by virtue of its
|
||||||
|
definition in the XML specification.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:NCName">
|
||||||
|
<xs:enumeration value="default"/>
|
||||||
|
<xs:enumeration value="preserve"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:attribute>
|
||||||
|
|
||||||
|
<xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3>base (as an attribute name)</h3>
|
||||||
|
<p>
|
||||||
|
denotes an attribute whose value
|
||||||
|
provides a URI to be used as the base for interpreting any
|
||||||
|
relative URIs in the scope of the element on which it
|
||||||
|
appears; its value is inherited. This name is reserved
|
||||||
|
by virtue of its definition in the XML Base specification.</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
See <a
|
||||||
|
href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
|
||||||
|
for information about this attribute.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
|
||||||
|
<xs:attribute name="id" type="xs:ID">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3>id (as an attribute name)</h3>
|
||||||
|
<p>
|
||||||
|
denotes an attribute whose value
|
||||||
|
should be interpreted as if declared to be of type ID.
|
||||||
|
This name is reserved by virtue of its definition in the
|
||||||
|
xml:id specification.</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
See <a
|
||||||
|
href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
|
||||||
|
for information about this attribute.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
|
||||||
|
<xs:attributeGroup name="specialAttrs">
|
||||||
|
<xs:attribute ref="xml:base"/>
|
||||||
|
<xs:attribute ref="xml:lang"/>
|
||||||
|
<xs:attribute ref="xml:space"/>
|
||||||
|
<xs:attribute ref="xml:id"/>
|
||||||
|
</xs:attributeGroup>
|
||||||
|
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3>Father (in any context at all)</h3>
|
||||||
|
|
||||||
|
<div class="bodytext">
|
||||||
|
<p>
|
||||||
|
denotes Jon Bosak, the chair of
|
||||||
|
the original XML Working Group. This name is reserved by
|
||||||
|
the following decision of the W3C XML Plenary and
|
||||||
|
XML Coordination groups:
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>
|
||||||
|
In appreciation for his vision, leadership and
|
||||||
|
dedication the W3C XML Plenary on this 10th day of
|
||||||
|
February, 2000, reserves for Jon Bosak in perpetuity
|
||||||
|
the XML name "xml:Father".
|
||||||
|
</p>
|
||||||
|
</blockquote>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div xml:id="usage" id="usage">
|
||||||
|
<h2><a name="usage">About this schema document</a></h2>
|
||||||
|
|
||||||
|
<div class="bodytext">
|
||||||
|
<p>
|
||||||
|
This schema defines attributes and an attribute group suitable
|
||||||
|
for use by schemas wishing to allow <code>xml:base</code>,
|
||||||
|
<code>xml:lang</code>, <code>xml:space</code> or
|
||||||
|
<code>xml:id</code> attributes on elements they define.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
To enable this, such a schema must import this schema for
|
||||||
|
the XML namespace, e.g. as follows:
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
<schema . . .>
|
||||||
|
. . .
|
||||||
|
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||||
|
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
or
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||||
|
schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
Subsequently, qualified reference to any of the attributes or the
|
||||||
|
group defined below will have the desired effect, e.g.
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
<type . . .>
|
||||||
|
. . .
|
||||||
|
<attributeGroup ref="xml:specialAttrs"/>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
will define a type which will schema-validate an instance element
|
||||||
|
with any of those attributes.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div id="nsversioning" xml:id="nsversioning">
|
||||||
|
<h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
|
||||||
|
<div class="bodytext">
|
||||||
|
<p>
|
||||||
|
In keeping with the XML Schema WG's standard versioning
|
||||||
|
policy, this schema document will persist at
|
||||||
|
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||||
|
http://www.w3.org/2009/01/xml.xsd</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
At the date of issue it can also be found at
|
||||||
|
<a href="http://www.w3.org/2001/xml.xsd">
|
||||||
|
http://www.w3.org/2001/xml.xsd</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The schema document at that URI may however change in the future,
|
||||||
|
in order to remain compatible with the latest version of XML
|
||||||
|
Schema itself, or with the XML namespace itself. In other words,
|
||||||
|
if the XML Schema or XML namespaces change, the version of this
|
||||||
|
document at <a href="http://www.w3.org/2001/xml.xsd">
|
||||||
|
http://www.w3.org/2001/xml.xsd
|
||||||
|
</a>
|
||||||
|
will change accordingly; the version at
|
||||||
|
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||||
|
http://www.w3.org/2009/01/xml.xsd
|
||||||
|
</a>
|
||||||
|
will not change.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Previous dated (and unchanging) versions of this schema
|
||||||
|
document are at:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="http://www.w3.org/2009/01/xml.xsd">
|
||||||
|
http://www.w3.org/2009/01/xml.xsd</a></li>
|
||||||
|
<li><a href="http://www.w3.org/2007/08/xml.xsd">
|
||||||
|
http://www.w3.org/2007/08/xml.xsd</a></li>
|
||||||
|
<li><a href="http://www.w3.org/2004/10/xml.xsd">
|
||||||
|
http://www.w3.org/2004/10/xml.xsd</a></li>
|
||||||
|
<li><a href="http://www.w3.org/2001/03/xml.xsd">
|
||||||
|
http://www.w3.org/2001/03/xml.xsd</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
|
||||||
|
</xs:schema>
|
||||||
|
|
318
packages/xo-vmdk-to-vhd/src/ova-schema/xmldsig-core-schema.xsd
Normal file
318
packages/xo-vmdk-to-vhd/src/ova-schema/xmldsig-core-schema.xsd
Normal file
@ -0,0 +1,318 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE schema
|
||||||
|
PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd"
|
||||||
|
[
|
||||||
|
<!ATTLIST schema
|
||||||
|
xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#">
|
||||||
|
<!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
|
||||||
|
<!ENTITY % p ''>
|
||||||
|
<!ENTITY % s ''>
|
||||||
|
]>
|
||||||
|
|
||||||
|
<!-- Schema for XML Signatures
|
||||||
|
http://www.w3.org/2000/09/xmldsig#
|
||||||
|
$Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
|
||||||
|
|
||||||
|
Copyright 2001 The Internet Society and W3C (Massachusetts Institute
|
||||||
|
of Technology, Institut National de Recherche en Informatique et en
|
||||||
|
Automatique, Keio University). All Rights Reserved.
|
||||||
|
http://www.w3.org/Consortium/Legal/
|
||||||
|
|
||||||
|
This document is governed by the W3C Software License [1] as described
|
||||||
|
in the FAQ [2].
|
||||||
|
|
||||||
|
[1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
|
||||||
|
[2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
|
||||||
|
targetNamespace="http://www.w3.org/2000/09/xmldsig#"
|
||||||
|
version="0.1" elementFormDefault="qualified">
|
||||||
|
|
||||||
|
<!-- Basic Types Defined for Signatures -->
|
||||||
|
|
||||||
|
<simpleType name="CryptoBinary">
|
||||||
|
<restriction base="base64Binary">
|
||||||
|
</restriction>
|
||||||
|
</simpleType>
|
||||||
|
|
||||||
|
<!-- Start Signature -->
|
||||||
|
|
||||||
|
<element name="Signature" type="ds:SignatureType"/>
|
||||||
|
<complexType name="SignatureType">
|
||||||
|
<sequence>
|
||||||
|
<element ref="ds:SignedInfo"/>
|
||||||
|
<element ref="ds:SignatureValue"/>
|
||||||
|
<element ref="ds:KeyInfo" minOccurs="0"/>
|
||||||
|
<element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Id" type="ID" use="optional"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="SignatureValue" type="ds:SignatureValueType"/>
|
||||||
|
<complexType name="SignatureValueType">
|
||||||
|
<simpleContent>
|
||||||
|
<extension base="base64Binary">
|
||||||
|
<attribute name="Id" type="ID" use="optional"/>
|
||||||
|
</extension>
|
||||||
|
</simpleContent>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- Start SignedInfo -->
|
||||||
|
|
||||||
|
<element name="SignedInfo" type="ds:SignedInfoType"/>
|
||||||
|
<complexType name="SignedInfoType">
|
||||||
|
<sequence>
|
||||||
|
<element ref="ds:CanonicalizationMethod"/>
|
||||||
|
<element ref="ds:SignatureMethod"/>
|
||||||
|
<element ref="ds:Reference" maxOccurs="unbounded"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Id" type="ID" use="optional"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
|
||||||
|
<complexType name="CanonicalizationMethodType" mixed="true">
|
||||||
|
<sequence>
|
||||||
|
<any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<!-- (0,unbounded) elements from (1,1) namespace -->
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="SignatureMethod" type="ds:SignatureMethodType"/>
|
||||||
|
<complexType name="SignatureMethodType" mixed="true">
|
||||||
|
<sequence>
|
||||||
|
<element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
|
||||||
|
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<!-- (0,unbounded) elements from (1,1) external namespace -->
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- Start Reference -->
|
||||||
|
|
||||||
|
<element name="Reference" type="ds:ReferenceType"/>
|
||||||
|
<complexType name="ReferenceType">
|
||||||
|
<sequence>
|
||||||
|
<element ref="ds:Transforms" minOccurs="0"/>
|
||||||
|
<element ref="ds:DigestMethod"/>
|
||||||
|
<element ref="ds:DigestValue"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Id" type="ID" use="optional"/>
|
||||||
|
<attribute name="URI" type="anyURI" use="optional"/>
|
||||||
|
<attribute name="Type" type="anyURI" use="optional"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="Transforms" type="ds:TransformsType"/>
|
||||||
|
<complexType name="TransformsType">
|
||||||
|
<sequence>
|
||||||
|
<element ref="ds:Transform" maxOccurs="unbounded"/>
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="Transform" type="ds:TransformType"/>
|
||||||
|
<complexType name="TransformType" mixed="true">
|
||||||
|
<choice minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<any namespace="##other" processContents="lax"/>
|
||||||
|
<!-- (1,1) elements from (0,unbounded) namespaces -->
|
||||||
|
<element name="XPath" type="string"/>
|
||||||
|
</choice>
|
||||||
|
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- End Reference -->
|
||||||
|
|
||||||
|
<element name="DigestMethod" type="ds:DigestMethodType"/>
|
||||||
|
<complexType name="DigestMethodType" mixed="true">
|
||||||
|
<sequence>
|
||||||
|
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="DigestValue" type="ds:DigestValueType"/>
|
||||||
|
<simpleType name="DigestValueType">
|
||||||
|
<restriction base="base64Binary"/>
|
||||||
|
</simpleType>
|
||||||
|
|
||||||
|
<!-- End SignedInfo -->
|
||||||
|
|
||||||
|
<!-- Start KeyInfo -->
|
||||||
|
|
||||||
|
<element name="KeyInfo" type="ds:KeyInfoType"/>
|
||||||
|
<complexType name="KeyInfoType" mixed="true">
|
||||||
|
<choice maxOccurs="unbounded">
|
||||||
|
<element ref="ds:KeyName"/>
|
||||||
|
<element ref="ds:KeyValue"/>
|
||||||
|
<element ref="ds:RetrievalMethod"/>
|
||||||
|
<element ref="ds:X509Data"/>
|
||||||
|
<element ref="ds:PGPData"/>
|
||||||
|
<element ref="ds:SPKIData"/>
|
||||||
|
<element ref="ds:MgmtData"/>
|
||||||
|
<any processContents="lax" namespace="##other"/>
|
||||||
|
<!-- (1,1) elements from (0,unbounded) namespaces -->
|
||||||
|
</choice>
|
||||||
|
<attribute name="Id" type="ID" use="optional"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="KeyName" type="string"/>
|
||||||
|
<element name="MgmtData" type="string"/>
|
||||||
|
|
||||||
|
<element name="KeyValue" type="ds:KeyValueType"/>
|
||||||
|
<complexType name="KeyValueType" mixed="true">
|
||||||
|
<choice>
|
||||||
|
<element ref="ds:DSAKeyValue"/>
|
||||||
|
<element ref="ds:RSAKeyValue"/>
|
||||||
|
<any namespace="##other" processContents="lax"/>
|
||||||
|
</choice>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
|
||||||
|
<complexType name="RetrievalMethodType">
|
||||||
|
<sequence>
|
||||||
|
<element ref="ds:Transforms" minOccurs="0"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="URI" type="anyURI"/>
|
||||||
|
<attribute name="Type" type="anyURI" use="optional"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- Start X509Data -->
|
||||||
|
|
||||||
|
<element name="X509Data" type="ds:X509DataType"/>
|
||||||
|
<complexType name="X509DataType">
|
||||||
|
<sequence maxOccurs="unbounded">
|
||||||
|
<choice>
|
||||||
|
<element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
|
||||||
|
<element name="X509SKI" type="base64Binary"/>
|
||||||
|
<element name="X509SubjectName" type="string"/>
|
||||||
|
<element name="X509Certificate" type="base64Binary"/>
|
||||||
|
<element name="X509CRL" type="base64Binary"/>
|
||||||
|
<any namespace="##other" processContents="lax"/>
|
||||||
|
</choice>
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<complexType name="X509IssuerSerialType">
|
||||||
|
<sequence>
|
||||||
|
<element name="X509IssuerName" type="string"/>
|
||||||
|
<element name="X509SerialNumber" type="integer"/>
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- End X509Data -->
|
||||||
|
|
||||||
|
<!-- Begin PGPData -->
|
||||||
|
|
||||||
|
<element name="PGPData" type="ds:PGPDataType"/>
|
||||||
|
<complexType name="PGPDataType">
|
||||||
|
<choice>
|
||||||
|
<sequence>
|
||||||
|
<element name="PGPKeyID" type="base64Binary"/>
|
||||||
|
<element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
|
||||||
|
<any namespace="##other" processContents="lax" minOccurs="0"
|
||||||
|
maxOccurs="unbounded"/>
|
||||||
|
</sequence>
|
||||||
|
<sequence>
|
||||||
|
<element name="PGPKeyPacket" type="base64Binary"/>
|
||||||
|
<any namespace="##other" processContents="lax" minOccurs="0"
|
||||||
|
maxOccurs="unbounded"/>
|
||||||
|
</sequence>
|
||||||
|
</choice>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- End PGPData -->
|
||||||
|
|
||||||
|
<!-- Begin SPKIData -->
|
||||||
|
|
||||||
|
<element name="SPKIData" type="ds:SPKIDataType"/>
|
||||||
|
<complexType name="SPKIDataType">
|
||||||
|
<sequence maxOccurs="unbounded">
|
||||||
|
<element name="SPKISexp" type="base64Binary"/>
|
||||||
|
<any namespace="##other" processContents="lax" minOccurs="0"/>
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- End SPKIData -->
|
||||||
|
|
||||||
|
<!-- End KeyInfo -->
|
||||||
|
|
||||||
|
<!-- Start Object (Manifest, SignatureProperty) -->
|
||||||
|
|
||||||
|
<element name="Object" type="ds:ObjectType"/>
|
||||||
|
<complexType name="ObjectType" mixed="true">
|
||||||
|
<sequence minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<any namespace="##any" processContents="lax"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Id" type="ID" use="optional"/>
|
||||||
|
<attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
|
||||||
|
<attribute name="Encoding" type="anyURI" use="optional"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="Manifest" type="ds:ManifestType"/>
|
||||||
|
<complexType name="ManifestType">
|
||||||
|
<sequence>
|
||||||
|
<element ref="ds:Reference" maxOccurs="unbounded"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Id" type="ID" use="optional"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
|
||||||
|
<complexType name="SignaturePropertiesType">
|
||||||
|
<sequence>
|
||||||
|
<element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
|
||||||
|
</sequence>
|
||||||
|
<attribute name="Id" type="ID" use="optional"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="SignatureProperty" type="ds:SignaturePropertyType"/>
|
||||||
|
<complexType name="SignaturePropertyType" mixed="true">
|
||||||
|
<choice maxOccurs="unbounded">
|
||||||
|
<any namespace="##other" processContents="lax"/>
|
||||||
|
<!-- (1,1) elements from (1,unbounded) namespaces -->
|
||||||
|
</choice>
|
||||||
|
<attribute name="Target" type="anyURI" use="required"/>
|
||||||
|
<attribute name="Id" type="ID" use="optional"/>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- End Object (Manifest, SignatureProperty) -->
|
||||||
|
|
||||||
|
<!-- Start Algorithm Parameters -->
|
||||||
|
|
||||||
|
<simpleType name="HMACOutputLengthType">
|
||||||
|
<restriction base="integer"/>
|
||||||
|
</simpleType>
|
||||||
|
|
||||||
|
<!-- Start KeyValue Element-types -->
|
||||||
|
|
||||||
|
<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
|
||||||
|
<complexType name="DSAKeyValueType">
|
||||||
|
<sequence>
|
||||||
|
<sequence minOccurs="0">
|
||||||
|
<element name="P" type="ds:CryptoBinary"/>
|
||||||
|
<element name="Q" type="ds:CryptoBinary"/>
|
||||||
|
</sequence>
|
||||||
|
<element name="G" type="ds:CryptoBinary" minOccurs="0"/>
|
||||||
|
<element name="Y" type="ds:CryptoBinary"/>
|
||||||
|
<element name="J" type="ds:CryptoBinary" minOccurs="0"/>
|
||||||
|
<sequence minOccurs="0">
|
||||||
|
<element name="Seed" type="ds:CryptoBinary"/>
|
||||||
|
<element name="PgenCounter" type="ds:CryptoBinary"/>
|
||||||
|
</sequence>
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
|
||||||
|
<complexType name="RSAKeyValueType">
|
||||||
|
<sequence>
|
||||||
|
<element name="Modulus" type="ds:CryptoBinary"/>
|
||||||
|
<element name="Exponent" type="ds:CryptoBinary"/>
|
||||||
|
</sequence>
|
||||||
|
</complexType>
|
||||||
|
|
||||||
|
<!-- End KeyValue Element-types -->
|
||||||
|
|
||||||
|
<!-- End Signature -->
|
||||||
|
|
||||||
|
</schema>
|
@ -8,7 +8,7 @@ import { pFromCallback } from 'promise-toolbox'
|
|||||||
import rimraf from 'rimraf'
|
import rimraf from 'rimraf'
|
||||||
import tmp from 'tmp'
|
import tmp from 'tmp'
|
||||||
|
|
||||||
import { ParsableFile, parseOVAFile } from './ova'
|
import { ParsableFile, parseOVAFile } from './ova-read'
|
||||||
import readVmdkGrainTable from './vmdk-read-table'
|
import readVmdkGrainTable from './vmdk-read-table'
|
||||||
|
|
||||||
const initialDir = process.cwd()
|
const initialDir = process.cwd()
|
||||||
|
@ -185,6 +185,7 @@ export default class VMDKDirectParser {
|
|||||||
const grainPosition = this.grainFileOffsetList[tableIndex] * SECTOR_SIZE
|
const grainPosition = this.grainFileOffsetList[tableIndex] * SECTOR_SIZE
|
||||||
const grainSizeBytes = this.header.grainSizeSectors * SECTOR_SIZE
|
const grainSizeBytes = this.header.grainSizeSectors * SECTOR_SIZE
|
||||||
const lba = this.grainLogicalAddressList[tableIndex] * grainSizeBytes
|
const lba = this.grainLogicalAddressList[tableIndex] * grainSizeBytes
|
||||||
|
assert.strictEqual(grainPosition >= position, true)
|
||||||
await this.virtualBuffer.readChunk(grainPosition - position, `blank from ${position} to ${grainPosition}`)
|
await this.virtualBuffer.readChunk(grainPosition - position, `blank from ${position} to ${grainPosition}`)
|
||||||
let grain
|
let grain
|
||||||
if (this.header.flags.hasMarkers) {
|
if (this.header.flags.hasMarkers) {
|
||||||
@ -194,5 +195,6 @@ export default class VMDKDirectParser {
|
|||||||
}
|
}
|
||||||
yield { logicalAddressBytes: lba, data: grain }
|
yield { logicalAddressBytes: lba, data: grain }
|
||||||
}
|
}
|
||||||
|
console.log('yielded last VMDK block')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
32
packages/xo-web/src/common/select-export-vm-format.js
Normal file
32
packages/xo-web/src/common/select-export-vm-format.js
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import _ from 'intl'
|
||||||
|
import React from 'react'
|
||||||
|
import { injectState, provideState } from 'reaclette'
|
||||||
|
|
||||||
|
import decorate from './apply-decorators'
|
||||||
|
import { Select } from './form'
|
||||||
|
|
||||||
|
const OPTIONS = [
|
||||||
|
{
|
||||||
|
label: 'xva',
|
||||||
|
value: 'xva',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'ova',
|
||||||
|
value: 'ova',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const SelectExportFormat = decorate([
|
||||||
|
provideState({
|
||||||
|
computed: {
|
||||||
|
options: () => OPTIONS,
|
||||||
|
selectProps: (_, props) => props,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
injectState,
|
||||||
|
({ onChange, state, value }) => (
|
||||||
|
<Select labelKey='label' valueKey='value' options={state.options} required simpleValue {...state.selectProps} />
|
||||||
|
),
|
||||||
|
])
|
||||||
|
|
||||||
|
export { SelectExportFormat as default }
|
@ -4,6 +4,7 @@ import React from 'react'
|
|||||||
|
|
||||||
import _ from '../../intl'
|
import _ from '../../intl'
|
||||||
import SelectCompression from '../../select-compression'
|
import SelectCompression from '../../select-compression'
|
||||||
|
import SelectExportFormat from '../../select-export-vm-format'
|
||||||
import { connectStore } from '../../utils'
|
import { connectStore } from '../../utils'
|
||||||
import { Container, Row, Col } from '../../grid'
|
import { Container, Row, Col } from '../../grid'
|
||||||
import { createGetObject, createSelector } from '../../selectors'
|
import { createGetObject, createSelector } from '../../selectors'
|
||||||
@ -20,16 +21,27 @@ import { createGetObject, createSelector } from '../../selectors'
|
|||||||
export default class ExportVmModalBody extends BaseComponent {
|
export default class ExportVmModalBody extends BaseComponent {
|
||||||
state = {
|
state = {
|
||||||
compression: '',
|
compression: '',
|
||||||
|
format: 'xva',
|
||||||
}
|
}
|
||||||
|
|
||||||
get value() {
|
get value() {
|
||||||
const compression = this.state.compression
|
const compression = this.state.compression === 'zstd' ? 'zstd' : this.state.compression === 'native'
|
||||||
return compression === 'zstd' ? 'zstd' : compression === 'native'
|
const format = this.state.format
|
||||||
|
return { compression, format }
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<Container>
|
<Container>
|
||||||
|
<Row>
|
||||||
|
<Col mediumSize={6}>
|
||||||
|
<strong> {_('exportType')}</strong>
|
||||||
|
</Col>
|
||||||
|
<Col mediumSize={6}>
|
||||||
|
<SelectExportFormat onChange={this.linkState('format')} value={this.state.format} />
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
{this.state.format === 'xva' && (
|
||||||
<Row>
|
<Row>
|
||||||
<Col mediumSize={6}>
|
<Col mediumSize={6}>
|
||||||
<strong>{_('compression')}</strong>
|
<strong>{_('compression')}</strong>
|
||||||
@ -42,6 +54,7 @@ export default class ExportVmModalBody extends BaseComponent {
|
|||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
|
)}
|
||||||
</Container>
|
</Container>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1695,13 +1695,13 @@ export const importDisks = (disks, sr) =>
|
|||||||
|
|
||||||
import ExportVmModalBody from './export-vm-modal' // eslint-disable-line import/first
|
import ExportVmModalBody from './export-vm-modal' // eslint-disable-line import/first
|
||||||
export const exportVm = async vm => {
|
export const exportVm = async vm => {
|
||||||
const compress = await confirm({
|
const { compression, format } = await confirm({
|
||||||
body: <ExportVmModalBody vm={vm} />,
|
body: <ExportVmModalBody vm={vm} />,
|
||||||
icon: 'export',
|
icon: 'export',
|
||||||
title: _('exportVmLabel'),
|
title: _('exportVmLabel'),
|
||||||
})
|
})
|
||||||
const id = resolveId(vm)
|
const id = resolveId(vm)
|
||||||
const { $getFrom: url } = await _call('vm.export', { vm: id, compress })
|
const { $getFrom: url } = await _call('vm.export', { vm: id, compress: compression, format })
|
||||||
const fullUrl = window.location.origin + url
|
const fullUrl = window.location.origin + url
|
||||||
const copytoClipboard = () => copy(fullUrl)
|
const copytoClipboard = () => copy(fullUrl)
|
||||||
const _info = () => info(_('startVmExport'), id)
|
const _info = () => info(_('startVmExport'), id)
|
||||||
|
Loading…
Reference in New Issue
Block a user