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”
|
||||
|
||||
- [VM export] Feat export to `ova` format (PR [#6006](https://github.com/vatesfr/xen-orchestra/pull/6006))
|
||||
|
||||
### Bug fixes
|
||||
|
||||
> 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
|
||||
>
|
||||
> 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
|
||||
|
||||
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
|
||||
RUN mkdir -p /usr/local/nvm
|
||||
RUN cd /usr/local/nvm
|
||||
|
@ -6,8 +6,8 @@ import getStream from 'get-stream'
|
||||
import hrp from 'http-request-plus'
|
||||
import { createLogger } from '@xen-orchestra/log'
|
||||
import { defer } from 'golike-defer'
|
||||
import { FAIL_ON_QUEUE } from 'limit-concurrency-decorator'
|
||||
import { format } from 'json-rpc-peer'
|
||||
import { FAIL_ON_QUEUE } from 'limit-concurrency-decorator'
|
||||
import { ignoreErrors } from 'promise-toolbox'
|
||||
import { invalidParameters, noSuchObject, operationFailed, unauthorized } from 'xo-common/api-errors.js'
|
||||
import { Ref } from 'xen-api'
|
||||
@ -1004,10 +1004,11 @@ revert.resolve = {
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
async function handleExport(req, res, { xapi, vmRef, compress }) {
|
||||
const stream = await xapi.VM_export(FAIL_ON_QUEUE, vmRef, {
|
||||
compress,
|
||||
})
|
||||
async function handleExport(req, res, { xapi, vmRef, compress, format = 'xva' }) {
|
||||
// @todo : should we put back the handleExportFAIL_ON_QUEUE ?
|
||||
const stream =
|
||||
format === 'ova' ? await xapi.exportVmOva(vmRef) : await xapi.VM_export(FAIL_ON_QUEUE, vmRef, { compress })
|
||||
|
||||
res.on('close', () => stream.cancel())
|
||||
// Remove the filename as it is already part of the URL.
|
||||
stream.headers['content-disposition'] = 'attachment'
|
||||
@ -1017,7 +1018,7 @@ async function handleExport(req, res, { xapi, vmRef, compress }) {
|
||||
}
|
||||
|
||||
// TODO: integrate in xapi.js
|
||||
async function export_({ vm, compress }) {
|
||||
async function export_({ vm, compress, format = 'xva' }) {
|
||||
if (vm.power_state === 'Running') {
|
||||
await checkPermissionOnSrs.call(this, vm)
|
||||
}
|
||||
@ -1026,11 +1027,12 @@ async function export_({ vm, compress }) {
|
||||
xapi: this.getXapi(vm),
|
||||
vmRef: vm._xapiRef,
|
||||
compress,
|
||||
format,
|
||||
}
|
||||
|
||||
return {
|
||||
$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 = {
|
||||
vm: { type: 'string' },
|
||||
compress: { type: ['boolean', 'string'], optional: true },
|
||||
format: { enum: ['xva', 'ova'], optional: true },
|
||||
}
|
||||
|
||||
export_.resolve = {
|
||||
@ -1060,6 +1063,7 @@ async function handleVmImport(req, res, { data, srId, type, xapi }) {
|
||||
// Timeout seems to be broken in Node 4.
|
||||
// See https://github.com/nodejs/node/issues/3319
|
||||
req.setTimeout(43200000) // 12 hours
|
||||
|
||||
// expect "multipart/form-data; boundary=something"
|
||||
const contentType = req.headers['content-type']
|
||||
const vm = await (contentType !== undefined && contentType.startsWith('multipart/form-data')
|
||||
|
@ -20,7 +20,7 @@ import semver from 'semver'
|
||||
import tarStream from 'tar-stream'
|
||||
import uniq from 'lodash/uniq.js'
|
||||
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 { createLogger } from '@xen-orchestra/log'
|
||||
import { decorateWith } from '@vates/decorate-with'
|
||||
@ -519,6 +519,76 @@ export default class Xapi extends XapiBase {
|
||||
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
|
||||
// object.
|
||||
@cancelable
|
||||
@ -1670,8 +1740,11 @@ export default class Xapi extends XapiBase {
|
||||
if (base !== undefined) {
|
||||
params.base = base
|
||||
}
|
||||
const vhdResult = await this.VDI_exportContent(vdi.$ref, params)
|
||||
const vmdkStream = await vhdToVMDK(filename, vhdResult)
|
||||
let 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.
|
||||
vmdkStream.headers = {
|
||||
...vhdResult.headers,
|
||||
|
@ -3,7 +3,7 @@
|
||||
"name": "xo-vmdk-to-vhd",
|
||||
"version": "2.2.0",
|
||||
"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": [
|
||||
"vhd",
|
||||
"vmdk"
|
||||
@ -25,6 +25,7 @@
|
||||
"lodash": "^4.17.15",
|
||||
"pako": "^2.0.4",
|
||||
"promise-toolbox": "^0.21.0",
|
||||
"tar-stream": "^2.2.0",
|
||||
"vhd-lib": "^3.1.0",
|
||||
"xml2js": "^0.4.23"
|
||||
},
|
||||
@ -39,7 +40,8 @@
|
||||
"fs-extra": "^10.0.0",
|
||||
"get-stream": "^6.0.0",
|
||||
"rimraf": "^3.0.0",
|
||||
"tmp": "^0.2.1"
|
||||
"tmp": "^0.2.1",
|
||||
"validate-with-xmllint": "^1.2.0"
|
||||
},
|
||||
"scripts": {
|
||||
"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 createReadableSparseStream from 'vhd-lib/createReadableSparseStream.js'
|
||||
import { parseOVAFile, ParsableFile } from './ova'
|
||||
import { parseOVAFile, ParsableFile } from './ova-read'
|
||||
import VMDKDirectParser from './vmdk-read'
|
||||
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'
|
||||
|
||||
@ -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 vhdReadStream
|
||||
* @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)
|
||||
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')
|
||||
return new Promise((resolve, reject) =>
|
||||
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 tmp from 'tmp'
|
||||
|
||||
import { ParsableFile, parseOVAFile } from './ova'
|
||||
import { ParsableFile, parseOVAFile } from './ova-read'
|
||||
import readVmdkGrainTable from './vmdk-read-table'
|
||||
|
||||
const initialDir = process.cwd()
|
||||
|
@ -185,6 +185,7 @@ export default class VMDKDirectParser {
|
||||
const grainPosition = this.grainFileOffsetList[tableIndex] * SECTOR_SIZE
|
||||
const grainSizeBytes = this.header.grainSizeSectors * SECTOR_SIZE
|
||||
const lba = this.grainLogicalAddressList[tableIndex] * grainSizeBytes
|
||||
assert.strictEqual(grainPosition >= position, true)
|
||||
await this.virtualBuffer.readChunk(grainPosition - position, `blank from ${position} to ${grainPosition}`)
|
||||
let grain
|
||||
if (this.header.flags.hasMarkers) {
|
||||
@ -194,5 +195,6 @@ export default class VMDKDirectParser {
|
||||
}
|
||||
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 SelectCompression from '../../select-compression'
|
||||
import SelectExportFormat from '../../select-export-vm-format'
|
||||
import { connectStore } from '../../utils'
|
||||
import { Container, Row, Col } from '../../grid'
|
||||
import { createGetObject, createSelector } from '../../selectors'
|
||||
@ -20,16 +21,27 @@ import { createGetObject, createSelector } from '../../selectors'
|
||||
export default class ExportVmModalBody extends BaseComponent {
|
||||
state = {
|
||||
compression: '',
|
||||
format: 'xva',
|
||||
}
|
||||
|
||||
get value() {
|
||||
const compression = this.state.compression
|
||||
return compression === 'zstd' ? 'zstd' : compression === 'native'
|
||||
const compression = this.state.compression === 'zstd' ? 'zstd' : this.state.compression === 'native'
|
||||
const format = this.state.format
|
||||
return { compression, format }
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<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>
|
||||
<Col mediumSize={6}>
|
||||
<strong>{_('compression')}</strong>
|
||||
@ -42,6 +54,7 @@ export default class ExportVmModalBody extends BaseComponent {
|
||||
/>
|
||||
</Col>
|
||||
</Row>
|
||||
)}
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
@ -1695,13 +1695,13 @@ export const importDisks = (disks, sr) =>
|
||||
|
||||
import ExportVmModalBody from './export-vm-modal' // eslint-disable-line import/first
|
||||
export const exportVm = async vm => {
|
||||
const compress = await confirm({
|
||||
const { compression, format } = await confirm({
|
||||
body: <ExportVmModalBody vm={vm} />,
|
||||
icon: 'export',
|
||||
title: _('exportVmLabel'),
|
||||
})
|
||||
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 copytoClipboard = () => copy(fullUrl)
|
||||
const _info = () => info(_('startVmExport'), id)
|
||||
|
Loading…
Reference in New Issue
Block a user