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 | Copyright (C) 2008-2020 Oracle Corporation
|
---|
9 |
|
---|
10 | This file is part of VirtualBox Open Source Edition (OSE), as
|
---|
11 | available from http://www.virtualbox.org. This file is free software;
|
---|
12 | you can redistribute it and/or modify it under the terms of the GNU
|
---|
13 | General Public License (GPL) as published by the Free Software
|
---|
14 | Foundation, in version 2 as it comes in the "COPYING" file of the
|
---|
15 | VirtualBox OSE distribution. VirtualBox OSE is distributed in the
|
---|
16 | hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
|
---|
17 | -->
|
---|
18 | <!ELEMENT idl (desc|if|library)*> <!-- done -->
|
---|
19 | <!ELEMENT if ANY> <!-- done -->
|
---|
20 | <!ATTLIST if target (midl|xpidl|wsdl) #REQUIRED>
|
---|
21 | <!ELEMENT cpp ANY> <!-- done -->
|
---|
22 | <!ATTLIST cpp line CDATA #IMPLIED>
|
---|
23 | <!ELEMENT library (application|if)*> <!-- done -->
|
---|
24 | <!ATTLIST library name CDATA #REQUIRED>
|
---|
25 | <!ATTLIST library uuid CDATA #REQUIRED>
|
---|
26 | <!ATTLIST library version CDATA #REQUIRED>
|
---|
27 | <!ELEMENT application (descGroup|if|result|enum|interface|module)*> <!-- done -->
|
---|
28 | <!ATTLIST application name CDATA #REQUIRED>
|
---|
29 | <!ATTLIST application uuid CDATA #REQUIRED>
|
---|
30 | <!ATTLIST application supportsErrorInfo CDATA #REQUIRED>
|
---|
31 | <!ELEMENT result (#PCDATA|desc|link)*> <!-- done -->
|
---|
32 | <!ATTLIST result name CDATA #REQUIRED>
|
---|
33 | <!ATTLIST result value CDATA #IMPLIED>
|
---|
34 | <!ELEMENT module (class)*> <!-- done -->
|
---|
35 | <!ATTLIST module name CDATA #REQUIRED>
|
---|
36 | <!ATTLIST module context CDATA #REQUIRED>
|
---|
37 | <!ATTLIST module threadingModel CDATA #IMPLIED>
|
---|
38 | <!ELEMENT enum (desc?, const+)> <!-- done -->
|
---|
39 | <!ATTLIST enum name CDATA #REQUIRED>
|
---|
40 | <!ATTLIST enum uuid CDATA #REQUIRED>
|
---|
41 | <!ELEMENT const (desc?)> <!-- done -->
|
---|
42 | <!ATTLIST const name CDATA #REQUIRED>
|
---|
43 | <!ATTLIST const value CDATA #REQUIRED>
|
---|
44 | <!ATTLIST const wsmap (managed|suppress) "managed">
|
---|
45 | <!ELEMENT interface (desc?, (attribute|method|class|if)*)> <!-- done -->
|
---|
46 | <!ATTLIST interface name CDATA #REQUIRED>
|
---|
47 | <!ATTLIST interface extends CDATA #IMPLIED>
|
---|
48 | <!ATTLIST interface uuid CDATA #IMPLIED>
|
---|
49 | <!ATTLIST interface supportsErrorInfo (yes|no) #IMPLIED>
|
---|
50 | <!ATTLIST interface default (yes|no) "no">
|
---|
51 | <!ATTLIST interface internal (yes|no) "no">
|
---|
52 | <!ATTLIST interface wsmap (fail|global|struct|managed|suppress) "fail">
|
---|
53 | <!-- wsmap specifies how this interface is mapped to the
|
---|
54 | web services API (WSDL). One of the following must be specified:
|
---|
55 | fail: the default value, for which vboxweb.xsl will raise an error and die.
|
---|
56 | global: object is a singleton and resides in global variable in the web service.
|
---|
57 | managed: objects of this type are referenced by managed object referenced
|
---|
58 | struct: object is a simple struct and can be copied as such
|
---|
59 | suppress: Skip this interface entirely, and all methods that use it -->
|
---|
60 | <!ATTLIST interface wscpp (generate|hardcoded) "generate">
|
---|
61 | <!-- wscpp specifies whether C++ code should be generated in methodmaps.cpp
|
---|
62 | as a mapper to COM APIs. By default, this is "generate"; however, if set
|
---|
63 | to "hardcoded", then no automatic C++ code should be generated. This is done
|
---|
64 | for webservice APIs that have no counterpart in COM and are hard-coded in
|
---|
65 | the webservice server, such as IManagedObjectReference and ISessionManager. -->
|
---|
66 | <!ATTLIST interface autogen CDATA #IMPLIED>
|
---|
67 | <!-- autogen names the style of code auto-generation for this
|
---|
68 | interface (currently only VBoxEvent). -->
|
---|
69 | <!ATTLIST interface id CDATA #IMPLIED>
|
---|
70 | <!-- id is only relevant for event interfaces, and specifies
|
---|
71 | which const name will be generated. -->
|
---|
72 | <!ATTLIST interface waitable (yes|no) "no">
|
---|
73 | <!-- waitable is only relevant for event interfaces, and
|
---|
74 | specifies that this event can be waited for. -->
|
---|
75 | <!ATTLIST interface wrap-hint-server-addinterfaces CDATA #IMPLIED>
|
---|
76 | <!ATTLIST interface wrap-hint-server CDATA #IMPLIED>
|
---|
77 | <!ATTLIST interface wrap-gen-hook (yes|no) "no">
|
---|
78 | <!ATTLIST interface notdual (yes|no) "no">
|
---|
79 | <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
|
---|
80 | <!ATTLIST interface dtracename CDATA #IMPLIED>
|
---|
81 | <!ATTLIST interface reservedAttributes CDATA #IMPLIED>
|
---|
82 | <!ATTLIST interface reservedMethods CDATA #IMPLIED>
|
---|
83 | <!ELEMENT class (interface)> <!-- done -->
|
---|
84 | <!ATTLIST class name CDATA #REQUIRED>
|
---|
85 | <!ATTLIST class uuid CDATA #REQUIRED>
|
---|
86 | <!ATTLIST class namespace CDATA #REQUIRED>
|
---|
87 | <!ELEMENT attribute (desc?)> <!-- done -->
|
---|
88 | <!ATTLIST attribute name CDATA #REQUIRED>
|
---|
89 | <!ATTLIST attribute type CDATA #REQUIRED>
|
---|
90 | <!ATTLIST attribute default CDATA #IMPLIED>
|
---|
91 | <!ATTLIST attribute readonly (yes|no) "no">
|
---|
92 | <!ATTLIST attribute mod (ptr|string) #IMPLIED>
|
---|
93 | <!ATTLIST attribute internal (yes|no) "no">
|
---|
94 | <!ATTLIST attribute safearray (yes|no) "no">
|
---|
95 | <!ATTLIST attribute wsmap (managed|suppress) "managed">
|
---|
96 | <!ATTLIST attribute wrap-hint-server CDATA #IMPLIED>
|
---|
97 | <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
|
---|
98 | <!ATTLIST attribute dtracename CDATA #IMPLIED>
|
---|
99 | <!ELEMENT method (desc?,param*,result*)> <!-- done -->
|
---|
100 | <!ATTLIST method name CDATA #REQUIRED>
|
---|
101 | <!ATTLIST method const CDATA "no">
|
---|
102 | <!ATTLIST method internal (yes|no) "no">
|
---|
103 | <!ATTLIST method wsmap (managed|suppress) "managed">
|
---|
104 | <!ATTLIST method wrap-hint-server CDATA #IMPLIED>
|
---|
105 | <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
|
---|
106 | <!ATTLIST method dtracename CDATA #IMPLIED>
|
---|
107 | <!ELEMENT param (desc?)> <!-- done -->
|
---|
108 | <!ATTLIST param name CDATA #REQUIRED>
|
---|
109 | <!ATTLIST param type CDATA #REQUIRED>
|
---|
110 | <!ATTLIST param dir (in|out|return) #REQUIRED>
|
---|
111 | <!ATTLIST param mod (ptr|string) #IMPLIED>
|
---|
112 | <!ATTLIST param safearray (yes|no) "no">
|
---|
113 | <!ELEMENT descGroup (desc)*> <!-- done (ignoring, butt-ugly hack, improper nesting enforced all over the .xsl files!) -->
|
---|
114 | <!ATTLIST descGroup id CDATA #IMPLIED>
|
---|
115 | <!ATTLIST descGroup title CDATA #IMPLIED>
|
---|
116 | <!ELEMENT desc (#PCDATA|link|note|see|b|tt|i|pre|para|ul|ol|h3|table|result)*> <!-- done (ignoring) -->
|
---|
117 | <!-- the following only appear within descriptions -->
|
---|
118 | <!ELEMENT link (#PCDATA)>
|
---|
119 | <!ATTLIST link to CDATA #REQUIRED>
|
---|
120 | <!ELEMENT h3 ANY>
|
---|
121 | <!ELEMENT para ANY>
|
---|
122 | <!ELEMENT b ANY>
|
---|
123 | <!ELEMENT i ANY>
|
---|
124 | <!ELEMENT ul (#PCDATA|li)*>
|
---|
125 | <!ELEMENT ol (#PCDATA|li)*>
|
---|
126 | <!ELEMENT li ANY>
|
---|
127 | <!ELEMENT pre ANY>
|
---|
128 | <!ELEMENT tt ANY>
|
---|
129 | <!ELEMENT see (#PCDATA|link)*>
|
---|
130 | <!ELEMENT note ANY>
|
---|
131 | <!ATTLIST note internal (yes|no) "no">
|
---|
132 | <!ELEMENT table (tr)+>
|
---|
133 | <!ELEMENT tr (td|th)+>
|
---|
134 | <!ELEMENT th ANY>
|
---|
135 | <!ELEMENT td ANY>
|
---|