VirtualBox

source: vbox/trunk/src/VBox/Main/idl/VirtualBox.dtd@ 94138

Last change on this file since 94138 was 85310, checked in by vboxsync, 4 years ago

Main/comimpl.xsl,VirtualBox.xidl: Added an 'autogenflags' attribute to the xidl interface element so we can selectively generate BSTR variants for a handful events where we need it. bugref:9790

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.7 KB
Line 
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 autogenflags CDATA #IMPLIED>
70 <!-- autogenflags contains autogen tweaks.
71 For autoget=VBoxEvent: 'BSTR' - generate IN_BSTR variants of the functions. -->
72 <!ATTLIST interface id CDATA #IMPLIED>
73 <!-- id is only relevant for event interfaces, and specifies
74 which const name will be generated. -->
75 <!ATTLIST interface waitable (yes|no) "no">
76 <!-- waitable is only relevant for event interfaces, and
77 specifies that this event can be waited for. -->
78 <!ATTLIST interface wrap-hint-server-addinterfaces CDATA #IMPLIED>
79 <!ATTLIST interface wrap-hint-server CDATA #IMPLIED>
80 <!ATTLIST interface wrap-gen-hook (yes|no) "no">
81 <!ATTLIST interface notdual (yes|no) "no">
82 <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
83 <!ATTLIST interface dtracename CDATA #IMPLIED>
84 <!ATTLIST interface reservedAttributes CDATA #IMPLIED>
85 <!ATTLIST interface reservedMethods CDATA #IMPLIED>
86 <!ELEMENT class (interface)> <!-- done -->
87 <!ATTLIST class name CDATA #REQUIRED>
88 <!ATTLIST class uuid CDATA #REQUIRED>
89 <!ATTLIST class namespace CDATA #REQUIRED>
90 <!ELEMENT attribute (desc?)> <!-- done -->
91 <!ATTLIST attribute name CDATA #REQUIRED>
92 <!ATTLIST attribute type CDATA #REQUIRED>
93 <!ATTLIST attribute default CDATA #IMPLIED>
94 <!ATTLIST attribute readonly (yes|no) "no">
95 <!ATTLIST attribute mod (ptr|string) #IMPLIED>
96 <!ATTLIST attribute internal (yes|no) "no">
97 <!ATTLIST attribute safearray (yes|no) "no">
98 <!ATTLIST attribute wsmap (managed|suppress) "managed">
99 <!ATTLIST attribute wrap-hint-server CDATA #IMPLIED>
100 <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
101 <!ATTLIST attribute dtracename CDATA #IMPLIED>
102 <!ELEMENT method (desc?,param*,result*)> <!-- done -->
103 <!ATTLIST method name CDATA #REQUIRED>
104 <!ATTLIST method const CDATA "no">
105 <!ATTLIST method internal (yes|no) "no">
106 <!ATTLIST method wsmap (managed|suppress) "managed">
107 <!ATTLIST method wrap-hint-server CDATA #IMPLIED>
108 <!-- DTrace has a probe name length limit, so dtracename helps dealing with excessivly long names. -->
109 <!ATTLIST method dtracename CDATA #IMPLIED>
110 <!ELEMENT param (desc?)> <!-- done -->
111 <!ATTLIST param name CDATA #REQUIRED>
112 <!ATTLIST param type CDATA #REQUIRED>
113 <!ATTLIST param dir (in|out|return) #REQUIRED>
114 <!ATTLIST param mod (ptr|string) #IMPLIED>
115 <!ATTLIST param safearray (yes|no) "no">
116 <!ELEMENT descGroup (desc)*> <!-- done (ignoring, butt-ugly hack, improper nesting enforced all over the .xsl files!) -->
117 <!ATTLIST descGroup id CDATA #IMPLIED>
118 <!ATTLIST descGroup title CDATA #IMPLIED>
119 <!ELEMENT desc (#PCDATA|link|note|see|b|tt|i|pre|para|ul|ol|h3|table|result)*> <!-- done (ignoring) -->
120 <!-- the following only appear within descriptions -->
121 <!ELEMENT link (#PCDATA)>
122 <!ATTLIST link to CDATA #REQUIRED>
123 <!ELEMENT h3 ANY>
124 <!ELEMENT para ANY>
125 <!ELEMENT b ANY>
126 <!ELEMENT i ANY>
127 <!ELEMENT ul (#PCDATA|li)*>
128 <!ELEMENT ol (#PCDATA|li)*>
129 <!ELEMENT li ANY>
130 <!ELEMENT pre ANY>
131 <!ELEMENT tt ANY>
132 <!ELEMENT see (#PCDATA|link)*>
133 <!ELEMENT note ANY>
134 <!ATTLIST note internal (yes|no) "no">
135 <!ELEMENT table (tr)+>
136 <!ELEMENT tr (td|th)+>
137 <!ELEMENT th ANY>
138 <!ELEMENT td ANY>
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette