1 | <!--
|
---|
2 | Unofficial DTD for the VirtualBox.xidl file. This is not currently used:
|
---|
3 | neither by the VirtualBox build process nor at runtime, so it's not shipped
|
---|
4 | with the product either, and thus not guaranteed to be up to date.
|
---|
5 | It is still the only sort-of-documentation available about what is valid
|
---|
6 | XIDL syntax.
|
---|
7 | -->
|
---|
8 | <!--
|
---|
9 | Copyright (C) 2008-2023 Oracle and/or its affiliates.
|
---|
10 |
|
---|
11 | This file is part of VirtualBox base platform packages, as
|
---|
12 | available from https://www.virtualbox.org.
|
---|
13 |
|
---|
14 | This program is free software; you can redistribute it and/or
|
---|
15 | modify it under the terms of the GNU General Public License
|
---|
16 | as published by the Free Software Foundation, in version 3 of the
|
---|
17 | License.
|
---|
18 |
|
---|
19 | This program is distributed in the hope that it will be useful, but
|
---|
20 | WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
22 | General Public License for more details.
|
---|
23 |
|
---|
24 | You should have received a copy of the GNU General Public License
|
---|
25 | along with this program; if not, see <https://www.gnu.org/licenses>.
|
---|
26 |
|
---|
27 | SPDX-License-Identifier: GPL-3.0-only
|
---|
28 | -->
|
---|
29 | <!ELEMENT idl (desc|if|library)*> <!-- done -->
|
---|
30 | <!ELEMENT if ANY> <!-- done -->
|
---|
31 | <!ATTLIST if target (midl|xpidl|wsdl) #REQUIRED>
|
---|
32 | <!ELEMENT cpp ANY> <!-- done -->
|
---|
33 | <!ATTLIST cpp line CDATA #IMPLIED>
|
---|
34 | <!ELEMENT library (application|if)*> <!-- done -->
|
---|
35 | <!ATTLIST library name CDATA #REQUIRED>
|
---|
36 | <!ATTLIST library uuid CDATA #REQUIRED>
|
---|
37 | <!ATTLIST library version CDATA #REQUIRED>
|
---|
38 | <!ELEMENT application (descGroup|if|result|enum|interface|module)*> <!-- done -->
|
---|
39 | <!ATTLIST application name CDATA #REQUIRED>
|
---|
40 | <!ATTLIST application uuid CDATA #REQUIRED>
|
---|
41 | <!ATTLIST application supportsErrorInfo CDATA #REQUIRED>
|
---|
42 | <!ELEMENT result (#PCDATA|desc|link)*> <!-- done -->
|
---|
43 | <!ATTLIST result name CDATA #REQUIRED>
|
---|
44 | <!ATTLIST result value CDATA #IMPLIED>
|
---|
45 | <!ELEMENT module (class)*> <!-- done -->
|
---|
46 | <!ATTLIST module name CDATA #REQUIRED>
|
---|
47 | <!ATTLIST module context CDATA #REQUIRED>
|
---|
48 | <!ATTLIST module threadingModel CDATA #IMPLIED>
|
---|
49 | <!ELEMENT enum (desc?, const+)> <!-- done -->
|
---|
50 | <!ATTLIST enum name CDATA #REQUIRED>
|
---|
51 | <!ATTLIST enum uuid CDATA #REQUIRED>
|
---|
52 | <!ELEMENT const (desc?)> <!-- done -->
|
---|
53 | <!ATTLIST const name CDATA #REQUIRED>
|
---|
54 | <!ATTLIST const value CDATA #REQUIRED>
|
---|
55 | <!ATTLIST const wsmap (managed|suppress) "managed">
|
---|
56 | <!ELEMENT interface (desc?, (attribute|method|class|if)*)> <!-- done -->
|
---|
57 | <!ATTLIST interface name CDATA #REQUIRED>
|
---|
58 | <!ATTLIST interface extends CDATA #IMPLIED>
|
---|
59 | <!ATTLIST interface uuid CDATA #IMPLIED>
|
---|
60 | <!ATTLIST interface supportsErrorInfo (yes|no) #IMPLIED>
|
---|
61 | <!ATTLIST interface default (yes|no) "no">
|
---|
62 | <!ATTLIST interface internal (yes|no) "no">
|
---|
63 | <!ATTLIST interface wsmap (fail|global|struct|managed|suppress) "fail">
|
---|
64 | <!-- wsmap specifies how this interface is mapped to the
|
---|
65 | web services API (WSDL). One of the following must be specified:
|
---|
66 | fail: the default value, for which vboxweb.xsl will raise an error and die.
|
---|
67 | global: object is a singleton and resides in global variable in the web service.
|
---|
68 | managed: objects of this type are referenced by managed object referenced
|
---|
69 | struct: object is a simple struct and can be copied as such
|
---|
70 | suppress: Skip this interface entirely, and all methods that use it -->
|
---|
71 | <!ATTLIST interface wscpp (generate|hardcoded) "generate">
|
---|
72 | <!-- wscpp specifies whether C++ code should be generated in methodmaps.cpp
|
---|
73 | as a mapper to COM APIs. By default, this is "generate"; however, if set
|
---|
74 | to "hardcoded", then no automatic C++ code should be generated. This is done
|
---|
75 | for webservice APIs that have no counterpart in COM and are hard-coded in
|
---|
76 | the webservice server, such as IManagedObjectReference and ISessionManager. -->
|
---|
77 | <!ATTLIST interface rest (managed|suppress) "suppress">
|
---|
78 | <!-- rest specifies how this interface is mapped to the
|
---|
79 | web services API (RESTful). One of the following must be specified:
|
---|
80 | managed: objects of this type are represented
|
---|
81 | suppress: the default value, skip this interface entirely -->
|
---|
82 | <!ATTLIST interface autogen CDATA #IMPLIED>
|
---|
83 | <!-- autogen names the style of code auto-generation for this
|
---|
84 | interface (currently only VBoxEvent). -->
|
---|
85 | <!ATTLIST interface autogenflags CDATA #IMPLIED>
|
---|
86 | <!-- autogenflags contains autogen tweaks.
|
---|
87 | For autoget=VBoxEvent: 'BSTR' - generate IN_BSTR variants of the functions. -->
|
---|
88 | <!ATTLIST interface id CDATA #IMPLIED>
|
---|
89 | <!-- id is only relevant for event interfaces, and specifies
|
---|
90 | which const name will be generated. -->
|
---|
91 | <!ATTLIST interface waitable (yes|no) "no">
|
---|
92 | <!-- waitable is only relevant for event interfaces, and
|
---|
93 | specifies that this event can be waited for. -->
|
---|
94 | <!ATTLIST interface wrap-hint-server-addinterfaces CDATA #IMPLIED>
|
---|
95 | <!ATTLIST interface wrap-hint-server CDATA #IMPLIED>
|
---|
96 | <!ATTLIST interface wrap-gen-hook (yes|no) "no">
|
---|
97 | <!ATTLIST interface notdual (yes|no) "no">
|
---|
98 | <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
|
---|
99 | <!ATTLIST interface dtracename CDATA #IMPLIED>
|
---|
100 | <!ATTLIST interface reservedAttributes CDATA #IMPLIED>
|
---|
101 | <!ATTLIST interface reservedMethods CDATA #IMPLIED>
|
---|
102 | <!ELEMENT class (interface)> <!-- done -->
|
---|
103 | <!ATTLIST class name CDATA #REQUIRED>
|
---|
104 | <!ATTLIST class uuid CDATA #REQUIRED>
|
---|
105 | <!ATTLIST class namespace CDATA #REQUIRED>
|
---|
106 | <!ELEMENT attribute (desc?)> <!-- done -->
|
---|
107 | <!ATTLIST attribute name CDATA #REQUIRED>
|
---|
108 | <!ATTLIST attribute type CDATA #REQUIRED>
|
---|
109 | <!ATTLIST attribute default CDATA #IMPLIED>
|
---|
110 | <!ATTLIST attribute readonly (yes|no) "no">
|
---|
111 | <!ATTLIST attribute mod (ptr|string) #IMPLIED>
|
---|
112 | <!ATTLIST attribute internal (yes|no) "no">
|
---|
113 | <!ATTLIST attribute safearray (yes|no) "no">
|
---|
114 | <!ATTLIST attribute wsmap (managed|suppress) "managed">
|
---|
115 | <!ATTLIST attribute rest (uuid|suppress|default) "default">
|
---|
116 | <!ATTLIST attribute wrap-hint-server CDATA #IMPLIED>
|
---|
117 | <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
|
---|
118 | <!ATTLIST attribute dtracename CDATA #IMPLIED>
|
---|
119 | <!ELEMENT method (rest?,desc?,param*,result*)> <!-- done -->
|
---|
120 | <!ATTLIST method name CDATA #REQUIRED>
|
---|
121 | <!ATTLIST method const CDATA "no">
|
---|
122 | <!ATTLIST method internal (yes|no) "no">
|
---|
123 | <!ATTLIST method wsmap (managed|suppress) "managed">
|
---|
124 | <!ATTLIST method wrap-hint-server CDATA #IMPLIED>
|
---|
125 | <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
|
---|
126 | <!ATTLIST method dtracename CDATA #IMPLIED>
|
---|
127 | <!ELEMENT rest ANY> <!-- done -->
|
---|
128 | <!ATTLIST rest name CDATA #IMPLIED>
|
---|
129 | <!ATTLIST rest request (get|put|post|delete|patch) "get">
|
---|
130 | <!ATTLIST rest path CDATA #REQUIRED>
|
---|
131 | <!ELEMENT param (desc?)> <!-- done -->
|
---|
132 | <!ATTLIST param name CDATA #REQUIRED>
|
---|
133 | <!ATTLIST param type CDATA #REQUIRED>
|
---|
134 | <!ATTLIST param dir (in|out|return) #REQUIRED>
|
---|
135 | <!ATTLIST param mod (ptr|string) #IMPLIED>
|
---|
136 | <!ATTLIST param safearray (yes|no) "no">
|
---|
137 | <!ELEMENT descGroup (desc)*> <!-- done (ignoring, butt-ugly hack, improper nesting enforced all over the .xsl files!) -->
|
---|
138 | <!ATTLIST descGroup id CDATA #IMPLIED>
|
---|
139 | <!ATTLIST descGroup title CDATA #IMPLIED>
|
---|
140 | <!ELEMENT desc (#PCDATA|link|note|see|b|tt|i|pre|para|ul|ol|h3|table|result)*> <!-- done (ignoring) -->
|
---|
141 | <!-- the following only appear within descriptions -->
|
---|
142 | <!ELEMENT link (#PCDATA)>
|
---|
143 | <!ATTLIST link to CDATA #REQUIRED>
|
---|
144 | <!ELEMENT h3 ANY>
|
---|
145 | <!ELEMENT para ANY>
|
---|
146 | <!ELEMENT b ANY>
|
---|
147 | <!ELEMENT i ANY>
|
---|
148 | <!ELEMENT ul (#PCDATA|li)*>
|
---|
149 | <!ELEMENT ol (#PCDATA|li)*>
|
---|
150 | <!ELEMENT li ANY>
|
---|
151 | <!ELEMENT pre ANY>
|
---|
152 | <!ELEMENT tt ANY>
|
---|
153 | <!ELEMENT see (#PCDATA|link)*>
|
---|
154 | <!ELEMENT note ANY>
|
---|
155 | <!ATTLIST note internal (yes|no) "no">
|
---|
156 | <!ELEMENT table (tr)+>
|
---|
157 | <!ELEMENT tr (td|th)+>
|
---|
158 | <!ELEMENT th ANY>
|
---|
159 | <!ELEMENT td ANY>
|
---|