diff options
Diffstat (limited to 'test/relaxng/libvirt.rng')
-rw-r--r-- | test/relaxng/libvirt.rng | 1258 |
1 files changed, 0 insertions, 1258 deletions
diff --git a/test/relaxng/libvirt.rng b/test/relaxng/libvirt.rng deleted file mode 100644 index c1f586e..0000000 --- a/test/relaxng/libvirt.rng +++ /dev/null @@ -1,1258 +0,0 @@ -<?xml version="1.0"?> -<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> - <!-- We handle only document defining a domain --> - <start> - <ref name="domain"/> - </start> - - <!-- - We handle only document defining a domain - --> - <define name="domain"> - <element name="domain"> - <ref name="hvs"/> - <ref name="ids"/> - <interleave> - <ref name="os"/> - <ref name="clock"/> - <ref name="resources"/> - <ref name="features"/> - <ref name="termination"/> - <optional> - <ref name="devices"/> - </optional> - <optional> - <ref name="seclabel"/> - </optional> - </interleave> - </element> - </define> - <define name="seclabel"> - <element name="seclabel"> - <attribute name="model"> - <text/> - </attribute> - <attribute name="type"> - <choice> - <value>dynamic</value> - <value>static</value> - </choice> - </attribute> - <element name="label"> - <text/> - </element> - </element> - </define> - <define name="hvs"> - <attribute name="type"> - <choice> - <value>xen</value> - <value>kvm</value> - <value>kqemu</value> - <value>qemu</value> - <value>lxc</value> - <value>openvz</value> - <value>test</value> - </choice> - </attribute> - </define> - <define name="os"> - <choice> - <ref name="osxen"/> - <ref name="oshvm"/> - <ref name="osexe"/> - </choice> - </define> - <define name="osxen"> - <choice> - <group> - <optional> - <ref name="bootloader"/> - </optional> - <element name="os"> - <ref name="ostypexen"/> - <ref name="osbootkernel"/> - </element> - </group> - <group> - <ref name="bootloader"/> - <optional> - <element name="os"> - <ref name="ostypexen"/> - <optional> - <ref name="osbootkernel"/> - </optional> - </element> - </optional> - </group> - </choice> - </define> - <define name="oshvm"> - <element name="os"> - <ref name="ostypehvm"/> - <interleave> - <optional> - <element name="loader"> - <ref name="absFilePath"/> - </element> - </optional> - <choice> - <ref name="osbootkernel"/> - <ref name="osbootdev"/> - </choice> - </interleave> - </element> - </define> - <define name="ostypexen"> - <element name="type"> - <optional> - <attribute name="arch"> - <choice> - <value>i686</value> - <value>x86_64</value> - <value>ia64</value> - </choice> - </attribute> - </optional> - <optional> - <attribute name="machine"> - <choice> - <value>xenpv</value> - <value>xenner</value> - </choice> - </attribute> - </optional> - <choice> - <value>xen</value> - <value>linux</value> - </choice> - </element> - </define> - <define name="ostypehvm"> - <element name="type"> - <optional> - <choice> - <ref name="hvmx86"/> - <ref name="hvmmips"/> - <ref name="hvmsparc"/> - <ref name="hvmppc"/> - </choice> - </optional> - <value>hvm</value> - </element> - </define> - <define name="hvmx86"> - <group> - <attribute name="arch"> - <choice> - <value>i686</value> - <value>x86_64</value> - </choice> - </attribute> - <attribute name="machine"> - <choice> - <value>xenfv</value> - <value>pc</value> - <value>isapc</value> - </choice> - </attribute> - </group> - </define> - <define name="hvmmips"> - <group> - <attribute name="arch"> - <value>mips</value> - </attribute> - <attribute name="machine"> - <value>mips</value> - </attribute> - </group> - </define> - <define name="hvmsparc"> - <group> - <attribute name="arch"> - <value>sparc</value> - </attribute> - <attribute name="machine"> - <value>sun4m</value> - </attribute> - </group> - </define> - <define name="hvmppc"> - <group> - <attribute name="arch"> - <value>ppc</value> - </attribute> - <attribute name="machine"> - <choice> - <value>g3beige</value> - <value>mac99</value> - <value>prep</value> - </choice> - </attribute> - </group> - </define> - <define name="osexe"> - <element name="os"> - <element name="type"> - <value>exe</value> - </element> - <interleave> - <optional> - <element name="init"> - <ref name="absFilePath"/> - </element> - </optional> - </interleave> - </element> - </define> - <!-- - The Identifiers can be: - - an optional id attribute with a number on the domain element - - a mandatory name - - an optional uuid - --> - <define name="ids"> - <optional> - <attribute name="id"> - <ref name="unsignedInt"/> - </attribute> - </optional> - <interleave> - <element name="name"> - <ref name="domainName"/> - </element> - <optional> - <element name="uuid"> - <ref name="UUID"/> - </element> - </optional> - </interleave> - </define> - <!-- - Resources usage defines the amount of memory (maximum and possibly - current usage) and number of virtual CPUs used by that domain. - We can't check here the rule that currentMemory <= memory - --> - <define name="resources"> - <interleave> - <element name="memory"> - <ref name="memoryKB"/> - </element> - <optional> - <element name="currentMemory"> - <ref name="memoryKB"/> - </element> - </optional> - <optional> - <element name="memoryBacking"> - <optional> - <element name="hugepages"> - <empty/> - </element> - </optional> - </element> - </optional> - <optional> - <element name="vcpu"> - <optional> - <attribute name="cpuset"/> - </optional> - <ref name="countCPU"/> - </element> - </optional> - </interleave> - </define> - <define name="clock"> - <optional> - <element name="clock"> - <attribute name="offset"> - <choice> - <value>localtime</value> - <value>utc</value> - </choice> - </attribute> - <empty/> - </element> - </optional> - </define> - <!-- - A bootloader may be used to extract the OS information instead of - defining the OS parameter in the instance. It points just to the - binary or script used to extract the data from the first disk device. - --> - <define name="bootloader"> - <interleave> - <element name="bootloader"> - <choice> - <ref name="absFilePath"/> - <empty/> - </choice> - </element> - <optional> - <element name="bootloader_args"> - <text/> - </element> - </optional> - </interleave> - </define> - <define name="osbootkernel"> - <interleave> - <element name="kernel"> - <ref name="absFilePath"/> - </element> - <optional> - <element name="initrd"> - <ref name="absFilePath"/> - </element> - </optional> - <optional> - <element name="root"> - <ref name="devicePath"/> - </element> - </optional> - <optional> - <element name="cmdline"> - <text/> - </element> - </optional> - </interleave> - </define> - <define name="osbootdev"> - <element name="boot"> - <attribute name="dev"> - <choice> - <value>hd</value> - <value>fd</value> - <value>cdrom</value> - <value>network</value> - </choice> - </attribute> - <empty/> - </element> - </define> - <define name="diskspec"> - <optional> - <ref name="driver"/> - </optional> - <ref name="target"/> - <optional> - <element name="readonly"> - <empty/> - </element> - </optional> - <optional> - <element name="shareable"> - <empty/> - </element> - </optional> - <optional> - <element name="serial"> - <ref name="diskSerial"/> - </element> - </optional> - </define> - <!-- - A disk description can be either of type file or block - The name of the attribute on the source element depends on the type - - --> - <define name="disk"> - <element name="disk"> - <optional> - <attribute name="device"> - <choice> - <value>floppy</value> - <value>disk</value> - <value>cdrom</value> - </choice> - </attribute> - </optional> - <choice> - <group> - <attribute name="type"> - <value>file</value> - </attribute> - <interleave> - <optional> - <element name="source"> - <attribute name="file"> - <ref name="absFilePath"/> - </attribute> - <empty/> - </element> - </optional> - <ref name="diskspec"/> - </interleave> - </group> - <group> - <attribute name="type"> - <value>block</value> - </attribute> - <interleave> - <optional> - <element name="source"> - <attribute name="dev"> - <ref name="deviceName"/> - </attribute> - <empty/> - </element> - </optional> - <ref name="diskspec"/> - </interleave> - </group> - <ref name="diskspec"/> - </choice> - </element> - </define> - <define name="target"> - <element name="target"> - <attribute name="dev"> - <ref name="deviceName"/> - </attribute> - <optional> - <attribute name="bus"> - <choice> - <value>ide</value> - <value>fdc</value> - <value>scsi</value> - <value>virtio</value> - <value>xen</value> - <value>usb</value> - <value>uml</value> - </choice> - </attribute> - </optional> - </element> - </define> - <!-- - Disk may use a special driver for access. Currently this is - only defined for Xen for tap/aio and file, but will certainly be - extended in the future, and libvirt doesn't look for specific values. - --> - <define name="driver"> - <element name="driver"> - <choice> - <group> - <ref name="driverFormat"/> - <optional> - <ref name="driverCache"/> - </optional> - </group> - <group> - <optional> - <ref name="driverFormat"/> - </optional> - <ref name="driverCache"/> - </group> - </choice> - <empty/> - </element> - </define> - <define name="driverFormat"> - <attribute name="name"> - <ref name="genericName"/> - </attribute> - <optional> - <attribute name="type"> - <ref name="genericName"/> - </attribute> - </optional> - </define> - <define name="driverCache"> - <attribute name="cache"> - <choice> - <value>none</value> - <value>writeback</value> - <value>writethrough</value> - </choice> - </attribute> - </define> - <define name="filesystem"> - <element name="filesystem"> - <choice> - <group> - <attribute name="type"> - <value>file</value> - </attribute> - <interleave> - <element name="source"> - <attribute name="file"> - <ref name="absFilePath"/> - </attribute> - <empty/> - </element> - <ref name="filesystemtgt"/> - </interleave> - </group> - <group> - <attribute name="type"> - <value>block</value> - </attribute> - <interleave> - <element name="source"> - <attribute name="dev"> - <ref name="deviceName"/> - </attribute> - <empty/> - </element> - <ref name="filesystemtgt"/> - </interleave> - </group> - <group> - <attribute name="type"> - <value>mount</value> - </attribute> - <interleave> - <element name="source"> - <attribute name="dir"> - <ref name="absFilePath"/> - </attribute> - <empty/> - </element> - <ref name="filesystemtgt"/> - </interleave> - </group> - <group> - <attribute name="type"> - <value>template</value> - </attribute> - <interleave> - <element name="source"> - <attribute name="name"> - <ref name="genericName"/> - </attribute> - <empty/> - </element> - <ref name="filesystemtgt"/> - </interleave> - </group> - </choice> - </element> - </define> - <define name="filesystemtgt"> - <element name="target"> - <attribute name="dir"> - <ref name="absDirPath"/> - </attribute> - <empty/> - </element> - </define> - <!-- - An interface description can either be of type bridge in which case - it will use a bridging source, or of type ethernet which uses a device - source and a device target instead. They both share a set of interface - options. FIXME - --> - <define name="interface"> - <element name="interface"> - <choice> - <group> - <attribute name="type"> - <value>bridge</value> - </attribute> - <interleave> - <optional> - <element name="source"> - <attribute name="bridge"> - <ref name="deviceName"/> - </attribute> - <empty/> - </element> - </optional> - <ref name="interface-options"/> - </interleave> - </group> - <group> - <attribute name="type"> - <value>ethernet</value> - </attribute> - <interleave> - <optional> - <element name="source"> - <attribute name="dev"> - <ref name="deviceName"/> - </attribute> - <empty/> - </element> - </optional> - <ref name="interface-options"/> - </interleave> - </group> - <group> - <attribute name="type"> - <value>network</value> - </attribute> - <interleave> - <element name="source"> - <attribute name="network"> - <ref name="deviceName"/> - </attribute> - <empty/> - </element> - <ref name="interface-options"/> - </interleave> - </group> - <group> - <attribute name="type"> - <value>user</value> - </attribute> - <interleave> - <ref name="interface-options"/> - </interleave> - </group> - <group> - <attribute name="type"> - <value>internal</value> - </attribute> - <interleave> - <element name="source"> - <attribute name="name"> - <ref name="deviceName"/> - </attribute> - <empty/> - </element> - <ref name="interface-options"/> - </interleave> - </group> - </choice> - </element> - </define> - <!-- - The interface options possible are: - - the MAC address - - the IP address bound to the interface - - the name of the script used to set up the binding - - the target device used - --> - <define name="interface-options"> - <interleave> - <optional> - <element name="target"> - <attribute name="dev"> - <ref name="deviceName"/> - </attribute> - <empty/> - </element> - </optional> - <optional> - <element name="mac"> - <attribute name="address"> - <ref name="addrMAC"/> - </attribute> - <empty/> - </element> - </optional> - <optional> - <element name="ip"> - <attribute name="address"> - <ref name="addrIP"/> - </attribute> - <empty/> - </element> - </optional> - <optional> - <element name="script"> - <attribute name="path"> - <ref name="filePath"/> - </attribute> - <empty/> - </element> - </optional> - <optional> - <element name="model"> - <attribute name="type"/> - <empty/> - </element> - </optional> - </interleave> - </define> - <!-- - An emulator description is just a path to the binary used for the task - --> - <define name="emulator"> - <element name="emulator"> - <ref name="absFilePath"/> - </element> - </define> - <!-- - A graphic description, currently in Xen only 2 types are supported: - - sdl with optional display, xauth and fullscreen - - vnc with a required port and optional listen IP address, password - and keymap - --> - <define name="graphic"> - <element name="graphics"> - <choice> - <group> - <attribute name="type"> - <value>sdl</value> - </attribute> - <optional> - <attribute name="display"> - <text/> - </attribute> - </optional> - <optional> - <attribute name="xauth"> - <text/> - </attribute> - </optional> - <optional> - <attribute name="fullscreen"> - <choice> - <value>yes</value> - <value>no</value> - </choice> - </attribute> - </optional> - </group> - <group> - <attribute name="type"> - <value>vnc</value> - </attribute> - <optional> - <attribute name="port"> - <ref name="PortNumber"/> - </attribute> - </optional> - <optional> - <attribute name="autoport"> - <choice> - <value>yes</value> - <value>no</value> - </choice> - </attribute> - </optional> - <optional> - <attribute name="listen"> - <ref name="addrIP"/> - </attribute> - </optional> - <optional> - <attribute name="passwd"> - <text/> - </attribute> - </optional> - <optional> - <attribute name="keymap"> - <text/> - </attribute> - </optional> - </group> - <group> - <attribute name="type"> - <value>rdp</value> - </attribute> - <optional> - <attribute name="port"> - <ref name="PortNumber"/> - </attribute> - </optional> - <optional> - <attribute name="autoport"> - <choice> - <value>yes</value> - <value>no</value> - </choice> - </attribute> - </optional> - <optional> - <attribute name="replaceUser"> - <choice> - <value>yes</value> - <value>no</value> - </choice> - </attribute> - </optional> - <optional> - <attribute name="multiUser"> - <choice> - <value>yes</value> - <value>no</value> - </choice> - </attribute> - </optional> - <optional> - <attribute name="listen"> - <ref name="addrIP"/> - </attribute> - </optional> - </group> - <group> - <attribute name="type"> - <value>desktop</value> - </attribute> - <optional> - <attribute name="display"> - <text/> - </attribute> - </optional> - <optional> - <attribute name="fullscreen"> - <choice> - <value>yes</value> - <value>no</value> - </choice> - </attribute> - </optional> - </group> - </choice> - </element> - </define> - <!-- - A graphic description, currently in Xen only 2 types are supported: - - sdl with optional display, xauth and fullscreen - - vnc with a required port and optional listen IP address, password - and keymap - --> - <define name="video"> - <element name="video"> - <optional> - <element name="model"> - <attribute name="type"> - <choice> - <value>vga</value> - <value>cirrus</value> - <value>vmvga</value> - <value>xen</value> - <value>vbox</value> - </choice> - </attribute> - <optional> - <attribute name="vram"> - <ref name="unsignedInt"/> - </attribute> - </optional> - <optional> - <attribute name="heads"> - <ref name="unsignedInt"/> - </attribute> - </optional> - <optional> - <element name="acceleration"> - <optional> - <attribute name="accel3d"> - <choice> - <value>yes</value> - <value>no</value> - </choice> - </attribute> - </optional> - <optional> - <attribute name="accel2d"> - <choice> - <value>yes</value> - <value>no</value> - </choice> - </attribute> - </optional> - </element> - </optional> - </element> - </optional> - </element> - </define> - <!-- - When a domain terminates multiple policies can be applied depending - on how it ended: - --> - <define name="termination"> - <interleave> - <optional> - <element name="on_reboot"> - <ref name="offOptions"/> - </element> - </optional> - <optional> - <element name="on_poweroff"> - <ref name="offOptions"/> - </element> - </optional> - <optional> - <element name="on_crash"> - <ref name="offOptions"/> - </element> - </optional> - </interleave> - </define> - <!-- - Options when a domain terminates: - destroy: The domain is cleaned up - restart: A new domain is started in place of the old one - preserve: The domain will remain in memory until it is destroyed manually - rename-restart: a variant of the previous one but where the old domain is - renamed before being saved to allow a restart - --> - <define name="offOptions"> - <choice> - <value>destroy</value> - <value>restart</value> - <value>preserve</value> - <value>rename-restart</value> - </choice> - </define> - <!-- - Specific setup for a qemu emulated character device. Note: this - definition doesn't fully specify the constraints on this node. - --> - <define name="qemucdev"> - <attribute name="type"> - <choice> - <value>dev</value> - <value>file</value> - <value>pipe</value> - <value>unix</value> - <value>tcp</value> - <value>udp</value> - <value>null</value> - <value>stdio</value> - <value>vc</value> - <value>pty</value> - </choice> - </attribute> - <interleave> - <optional> - <oneOrMore> - <element name="source"> - <optional> - <attribute name="mode"/> - </optional> - <optional> - <attribute name="path"/> - </optional> - <optional> - <attribute name="host"/> - </optional> - <optional> - <attribute name="service"/> - </optional> - <optional> - <attribute name="wiremode"/> - </optional> - </element> - </oneOrMore> - </optional> - <optional> - <element name="protocol"> - <optional> - <attribute name="type"/> - </optional> - </element> - </optional> - <optional> - <element name="target"> - <optional> - <attribute name="port"/> - </optional> - </element> - </optional> - </interleave> - </define> - <!-- - The description for a console - just a tty device - --> - <define name="console"> - <element name="console"> - <choice> - <group> - <optional> - <attribute name="tty"> - <ref name="devicePath"/> - </attribute> - </optional> - <empty/> - </group> - <ref name="qemucdev"/> - </choice> - </element> - </define> - <define name="sound"> - <element name="sound"> - <attribute name="model"> - <choice> - <value>sb16</value> - <value>es1370</value> - <value>pcspk</value> - <value>ac97</value> - </choice> - </attribute> - </element> - </define> - <define name="parallel"> - <element name="parallel"> - <ref name="qemucdev"/> - </element> - </define> - <define name="serial"> - <element name="serial"> - <ref name="qemucdev"/> - </element> - </define> - <define name="input"> - <element name="input"> - <attribute name="type"> - <choice> - <value>tablet</value> - <value>mouse</value> - </choice> - </attribute> - <optional> - <attribute name="bus"> - <choice> - <value>ps2</value> - <value>usb</value> - <value>xen</value> - </choice> - </attribute> - </optional> - </element> - </define> - <define name="hostdev"> - <element name="hostdev"> - <optional> - <attribute name="mode"> - <choice> - <value>subsystem</value> - <value>capabilities</value> - </choice> - </attribute> - <attribute name="type"> - <choice> - <value>usb</value> - <value>pci</value> - </choice> - </attribute> - <attribute name="managed"> - <choice> - <value>yes</value> - <value>no</value> - </choice> - </attribute> - </optional> - <group> - <element name="source"> - <choice> - <ref name="usbproduct"/> - <ref name="usbaddress"/> - <ref name="pciaddress"/> - </choice> - </element> - </group> - </element> - </define> - <define name="usbproduct"> - <element name="vendor"> - <attribute name="id"> - <ref name="usbId"/> - </attribute> - </element> - <element name="product"> - <attribute name="id"> - <ref name="usbId"/> - </attribute> - </element> - </define> - <define name="usbaddress"> - <element name="address"> - <attribute name="bus"> - <ref name="usbAddr"/> - </attribute> - <attribute name="device"> - <ref name="usbAddr"/> - </attribute> - </element> - </define> - <define name="pciaddress"> - <element name="address"> - <optional> - <attribute name="domain"> - <ref name="pciDomain"/> - </attribute> - </optional> - <attribute name="bus"> - <ref name="pciBus"/> - </attribute> - <attribute name="slot"> - <ref name="pciSlot"/> - </attribute> - <attribute name="function"> - <ref name="pciFunc"/> - </attribute> - </element> - </define> - <!-- - Devices attached to a domain. - --> - <define name="devices"> - <element name="devices"> - <interleave> - <optional> - <ref name="emulator"/> - </optional> - <zeroOrMore> - <choice> - <ref name="disk"/> - <ref name="filesystem"/> - <ref name="interface"/> - <ref name="input"/> - <ref name="sound"/> - <ref name="hostdev"/> - <ref name="graphic"/> - <ref name="video"/> - <ref name="console"/> - <ref name="parallel"/> - <ref name="serial"/> - </choice> - </zeroOrMore> - </interleave> - </element> - </define> - <!-- - A set of optional features: PAE, APIC and ACPI support - --> - <define name="features"> - <optional> - <element name="features"> - <interleave> - <optional> - <element name="pae"> - <empty/> - </element> - </optional> - <optional> - <element name="apic"> - <empty/> - </element> - </optional> - <optional> - <element name="acpi"> - <empty/> - </element> - </optional> - </interleave> - </element> - </optional> - </define> - <!-- - Type library - - Our unsignedInt doesn't allow a leading '+' in its lexical form - A domain name shoul be made of ascii, numbers, _-+ and is non-empty - UUID currently allows only the 32 characters strict syntax - memoryKB request at least 4Mbytes though Xen will grow bigger if too low - --> - <define name="unsignedInt"> - <data type="unsignedInt"> - <param name="pattern">[0-9]+</param> - </data> - </define> - <define name="countCPU"> - <data type="unsignedShort"> - <param name="pattern">[0-9]+</param> - <param name="minInclusive">1</param> - </data> - </define> - <define name="PortNumber"> - <data type="short"> - <param name="minInclusive">-1</param> - </data> - </define> - <define name="memoryKB"> - <data type="unsignedInt"> - <param name="pattern">[0-9]+</param> - <param name="minInclusive">4000</param> - </data> - </define> - <define name="domainName"> - <data type="string"> - <param name="pattern">[A-Za-z0-9_\.\+\-&:/]+</param> - </data> - </define> - <define name="diskSerial"> - <data type="string"> - <param name="pattern">[A-Za-z0-9_\.\+\-]+</param> - </data> - </define> - <define name="genericName"> - <data type="string"> - <param name="pattern">[a-zA-Z0-9_\+\-]+</param> - </data> - </define> - <define name="UUID"> - <choice> - <data type="string"> - <param name="pattern">[a-fA-F0-9]{32}</param> - </data> - <data type="string"> - <param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param> - </data> - </choice> - </define> - <define name="filePath"> - <data type="string"> - <param name="pattern">[a-zA-Z0-9_\.\+\-&/%]+</param> - </data> - </define> - <define name="absFilePath"> - <data type="string"> - <param name="pattern">/[a-zA-Z0-9_\.\+\-&/%]+</param> - </data> - </define> - <define name="absDirPath"> - <data type="string"> - <param name="pattern">/[a-zA-Z0-9_\.\+\-&/%]*</param> - </data> - </define> - <define name="devicePath"> - <data type="string"> - <param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param> - </data> - </define> - <define name="deviceName"> - <data type="string"> - <param name="pattern">[a-zA-Z0-9_\.\-:/]+</param> - </data> - </define> - <define name="addrMAC"> - <data type="string"> - <param name="pattern">([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}</param> - </data> - </define> - <define name="addrIP"> - <data type="string"> - <param name="pattern">([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9]</param> - </data> - </define> - <define name="usbId"> - <data type="string"> - <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param> - </data> - </define> - <define name="usbAddr"> - <data type="string"> - <param name="pattern">(0x)?[0-9a-fA-F]{1,3}</param> - </data> - </define> - <define name="pciDomain"> - <data type="string"> - <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param> - </data> - </define> - <define name="pciBus"> - <data type="string"> - <param name="pattern">(0x)?[0-9a-fA-F]{1,2}</param> - </data> - </define> - <define name="pciSlot"> - <data type="string"> - <param name="pattern">(0x)?[0-1]?[0-9a-fA-F]</param> - </data> - </define> - <define name="pciFunc"> - <data type="string"> - <param name="pattern">(0x)?[0-7]</param> - </data> - </define> -</grammar> |