e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync<!--
ad27e1d5e48ca41245120c331cc88b50464813cevboxsync Unofficial DTD for the VirtualBox.xidl file. This is not currently used:
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync neither by the VirtualBox build process nor at runtime, so it's not shipped
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync with the product either, and thus not guaranteed to be up to date.
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync It is still the only sort-of-documentation available about what is valid
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync XIDL syntax.
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync Copyright (C) 2008-2013 Oracle Corporation
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync This file is part of VirtualBox Open Source Edition (OSE), as
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync available from http://www.virtualbox.org. This file is free software;
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync you can redistribute it and/or modify it under the terms of the GNU
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync General Public License (GPL) as published by the Free Software
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync Foundation, in version 2 as it comes in the "COPYING" file of the
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync VirtualBox OSE distribution. VirtualBox OSE is distributed in the
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync-->
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ELEMENT idl (desc|if|library)*> <!-- done -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT if ANY>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST if target (midl|xpidl|wsdl) #REQUIRED> <!-- done -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT cpp ANY>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST cpp line CDATA #IMPLIED> <!-- done -->
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ELEMENT library (descGroup|if|result|enum|interface|module)*>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST library name CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST library uuid CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST library version CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST library desc CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST library appUuid CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST library supportsErrorInfo CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ELEMENT result (#PCDATA|desc|link)*> <!-- done -->
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST result name CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST result value CDATA #IMPLIED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ELEMENT module (class)*> <!-- done -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST module name CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST module context CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST module threadingModel CDATA #IMPLIED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT enum (desc?, const+)> <!-- done -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST enum name CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST enum uuid CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT const (desc?)> <!-- done -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST const name CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST const value CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST const wsmap (managed|suppress) "managed">
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT interface (desc?, (attribute|method|class|if)*)> <!-- done -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST interface name CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST interface extends CDATA #IMPLIED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST interface uuid CDATA #IMPLIED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST interface supportsErrorInfo (yes|no) #IMPLIED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST interface default (yes|no) "no">
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST interface internal (yes|no) "no">
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST interface wsmap (fail|global|struct|managed|suppress) "fail">
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!-- wsmap specifies how this interface is mapped to the
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync web services API (WSDL). One of the following must be specified:
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync fail: the default value, for which vboxweb.xsl will raise an error and die.
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync global: object is a singleton and resides in global variable in the web service.
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync managed: objects of this type are referenced by managed object referenced
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync struct: object is a simple struct and can be copied as such
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync suppress: Skip this interface entirely, and all methods that use it -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST interface wscpp (generate|hardcoded) "generate">
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!-- wscpp specifies whether C++ code should be generated in methodmaps.cpp
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync as a mapper to COM APIs. By default, this is "generate"; however, if set
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync to "hardcoded", then no automatic C++ code should be generated. This is done
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync for webservice APIs that have no counterpart in COM and are hard-coded in
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync the webservice server, such as IManagedObjectReference and ISessionManager. -->
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST interface autogen CDATA #IMPLIED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!-- autogen names the style of code auto-generation for this
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync interface (currently only VBoxEvent). -->
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST interface id CDATA #IMPLIED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!-- id is only relevant for event interfaces, and specifies
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync which const name will be generated. -->
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST interface waitable (yes|no) "no">
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!-- waitable is only relevant for event interfaces, and
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync specifies that this event can be waited for. -->
aeb7aa0bfdaa753f118a2fa041833051fd146175vboxsync <!ATTLIST interface wrap-hint-server-addinterfaces CDATA #IMPLIED>
aeb7aa0bfdaa753f118a2fa041833051fd146175vboxsync <!ATTLIST interface wrap-hint-server CDATA #IMPLIED>
aeb7aa0bfdaa753f118a2fa041833051fd146175vboxsync <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
aeb7aa0bfdaa753f118a2fa041833051fd146175vboxsync <!ATTLIST interface dtracename CDATA #IMPLIED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ELEMENT class (interface)> <!-- done -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST class name CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST class uuid CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST class namespace CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT attribute (desc?)> <!-- done -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST attribute name CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST attribute type CDATA #REQUIRED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST attribute default CDATA #IMPLIED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST attribute readonly (yes|no) "no">
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST attribute mod (ptr|string) #IMPLIED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST attribute internal (yes|no) "no">
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST attribute safearray (yes|no) "no">
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST attribute wsmap (managed|suppress) "managed">
aeb7aa0bfdaa753f118a2fa041833051fd146175vboxsync <!ATTLIST attribute wrap-hint-server CDATA #IMPLIED>
aeb7aa0bfdaa753f118a2fa041833051fd146175vboxsync <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
aeb7aa0bfdaa753f118a2fa041833051fd146175vboxsync <!ATTLIST attribute dtracename CDATA #IMPLIED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ELEMENT method (desc?,param*,result*)> <!-- done -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST method name CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST method const CDATA "no">
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST method internal (yes|no) "no">
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST method wsmap (managed|suppress) "managed">
aeb7aa0bfdaa753f118a2fa041833051fd146175vboxsync <!ATTLIST method wrap-hint-server CDATA #IMPLIED>
aeb7aa0bfdaa753f118a2fa041833051fd146175vboxsync <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
aeb7aa0bfdaa753f118a2fa041833051fd146175vboxsync <!ATTLIST method dtracename CDATA #IMPLIED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT param (desc?)> <!-- done -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST param name CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST param type CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST param dir (in|out|return) #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST param mod (ptr|string) #IMPLIED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST param safearray (yes|no) "no">
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ELEMENT descGroup (desc)*> <!-- done (ignoring, butt-ugly hack, improper nesting enforced all over the .xsl files!) -->
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST descGroup id CDATA #IMPLIED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST descGroup title CDATA #IMPLIED>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ELEMENT desc (#PCDATA|link|note|see|b|tt|i|pre|para|ul|ol|h3|table|result)*> <!-- done (ignoring) -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!-- the following only appear within descriptions -->
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT link (#PCDATA)>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ATTLIST link to CDATA #REQUIRED>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT h3 ANY>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ELEMENT para ANY>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT b ANY>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT i ANY>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT ul (#PCDATA|li)*>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ELEMENT ol (#PCDATA|li)*>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT li ANY>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT pre ANY>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT tt ANY>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT see (#PCDATA|link)*>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT note ANY>
c89ab46314a2ed24bfd30a78fabcd673f66a85c5vboxsync <!ATTLIST note internal (yes|no) "no">
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT table (tr)+>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT tr (td|th)+>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT th ANY>
e1bb6985ff821f55a24e0959c809a15871e58c5avboxsync <!ELEMENT td ANY>