rubywbem 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/AUTHORS +1 -0
- data/CHANGELOG +3 -0
- data/LICENSE +339 -0
- data/README +28 -0
- data/Rakefile +146 -0
- data/lib/wbem.rb +23 -0
- data/lib/wbem/cim_constants.rb +50 -0
- data/lib/wbem/cim_http.rb +137 -0
- data/lib/wbem/cim_obj.rb +1148 -0
- data/lib/wbem/cim_operations.rb +571 -0
- data/lib/wbem/cim_types.rb +195 -0
- data/lib/wbem/cim_xml.rb +1428 -0
- data/lib/wbem/tupleparse.rb +1181 -0
- data/lib/wbem/tupletree.rb +138 -0
- data/ruby-wbem.spec +54 -0
- data/testsuite/CIM_DTD_V22.dtd +324 -0
- data/testsuite/comfychair.rb +442 -0
- data/testsuite/runtests.sh +56 -0
- data/testsuite/test_cim_obj.rb +1610 -0
- data/testsuite/test_cim_operations.rb +702 -0
- data/testsuite/test_cim_xml.rb +1495 -0
- data/testsuite/test_nocasehash.rb +248 -0
- data/testsuite/test_tupleparse.rb +208 -0
- data/testsuite/validate.rb +93 -0
- metadata +68 -0
@@ -0,0 +1,138 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2006, Red Hat, Inc
|
3
|
+
# Scott Seago <sseago@redhat.com>
|
4
|
+
#
|
5
|
+
# derived from pywbem, written by Tim Potter <tpot@hp.com>, Martin Pool <mbp@hp.com>
|
6
|
+
#
|
7
|
+
# This program is free software; you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
9
|
+
# the Free Software Foundation; either version 2 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# You should have received a copy of the GNU General Public License
|
13
|
+
# along with this program; if not, write to the Free Software
|
14
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
15
|
+
#
|
16
|
+
|
17
|
+
# """
|
18
|
+
# tupletree - Convert XML DOM objects to and from tuple trees.
|
19
|
+
|
20
|
+
# DOM is the standard in-memory representation of XML documents, but it
|
21
|
+
# is very cumbersome for some types of processing where XML encodes
|
22
|
+
# object structures rather than text documents. Direct mapping to Python
|
23
|
+
# classes may not be a good match either.
|
24
|
+
|
25
|
+
# tupletrees may be created from an in-memory DOM using
|
26
|
+
# dom_to_tupletree(), or from a string using xml_to_tupletree().
|
27
|
+
|
28
|
+
# Since the Python XML libraries deal mostly with Unicode strings they
|
29
|
+
# are also returned here. If plain Strings are passed in they will be
|
30
|
+
# converted by xmldom.
|
31
|
+
|
32
|
+
# Each node of the tuple tree is a Python 4-tuple, corresponding to an
|
33
|
+
# XML Element (i.e. <tag>):
|
34
|
+
|
35
|
+
# (NAME, ATTRS, CONTENTS, None)
|
36
|
+
|
37
|
+
# The NAME is the name of the element.
|
38
|
+
|
39
|
+
# The ATTRS are a name-value hash of element attributes.
|
40
|
+
|
41
|
+
# The CONTENTS is a list of child elements.
|
42
|
+
|
43
|
+
# The fourth element is reserved.
|
44
|
+
# """
|
45
|
+
|
46
|
+
require "rexml/document"
|
47
|
+
|
48
|
+
module WBEM
|
49
|
+
|
50
|
+
def tupletree_to_dom(document, tree, parent=nil)
|
51
|
+
# """Convert tupletree to an XML DOM tree within a document.
|
52
|
+
# """
|
53
|
+
# import types
|
54
|
+
name, attrs, contents, junk = tree
|
55
|
+
|
56
|
+
parent = document if parent.nil?
|
57
|
+
elt = Element.new(name, parent)
|
58
|
+
|
59
|
+
attrs.each { |key, val| elt.add_attribute(key, val) }
|
60
|
+
contents.each do |child|
|
61
|
+
if child.is_a? Array
|
62
|
+
tupletree_to_dom(document, child, elt)
|
63
|
+
else
|
64
|
+
elt.add_text(child)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
return elt
|
68
|
+
end
|
69
|
+
|
70
|
+
def WBEM.dom_to_tupletree(node)
|
71
|
+
# """Convert a DOM object to a pyRXP-style tuple tree.
|
72
|
+
|
73
|
+
# Each element is a 4-tuple of (NAME, ATTRS, CONTENTS, None).
|
74
|
+
|
75
|
+
# Very nice for processing complex nested trees.
|
76
|
+
# """
|
77
|
+
|
78
|
+
if node.node_type == :document
|
79
|
+
# boring; pop down one level
|
80
|
+
return dom_to_tupletree(node.elements[1])
|
81
|
+
end
|
82
|
+
unless node.node_type == :element
|
83
|
+
raise TypeError, "node must be an element"
|
84
|
+
end
|
85
|
+
|
86
|
+
name = node.name
|
87
|
+
attrs = {}
|
88
|
+
contents = []
|
89
|
+
|
90
|
+
node.elements.each do |child|
|
91
|
+
if child.node_type == :element
|
92
|
+
contents << dom_to_tupletree(child)
|
93
|
+
elsif child.node_type == :text
|
94
|
+
unless child.value.kind_of?(String)
|
95
|
+
raise TypeError, "text node #{child} must be a string"
|
96
|
+
end
|
97
|
+
contents << child.value
|
98
|
+
else
|
99
|
+
raise RuntimeError, "can't handle #{child}"
|
100
|
+
end
|
101
|
+
end
|
102
|
+
node.texts.each do |child|
|
103
|
+
if child.node_type == :text
|
104
|
+
unless child.value.kind_of?(String)
|
105
|
+
raise TypeError, "text node #{child} must be a string"
|
106
|
+
end
|
107
|
+
contents << child.value
|
108
|
+
else
|
109
|
+
raise RuntimeError, "can't handle #{child}"
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
node.attributes.each { |nodename, nodevalue| attrs[nodename] = nodevalue }
|
114
|
+
|
115
|
+
# XXX: Cannot yet handle comments, cdata, processing instructions and
|
116
|
+
# other XML batshit.
|
117
|
+
|
118
|
+
# it's so easy in retrospect!
|
119
|
+
return [name, attrs, contents]
|
120
|
+
end
|
121
|
+
|
122
|
+
def WBEM.xml_to_tupletree(xml_string)
|
123
|
+
# """Parse XML straight into tupletree."""
|
124
|
+
return dom_to_tupletree(REXML::Document.new(xml_string))
|
125
|
+
end
|
126
|
+
|
127
|
+
def WBEM.tupletree_to_s(tt)
|
128
|
+
"name: #{tt[0]}\nattributes: #{tt[1].to_a.collect {|a| "(#{a[0]} => #{a[1]})"}.join(", ") unless tt[1].nil?}\n tree: #{unless tt[2].nil?
|
129
|
+
if tt[2][0].is_a?(Array)
|
130
|
+
tt[2].collect { |t| WBEM.tupletree_to_s(t) }.join
|
131
|
+
else
|
132
|
+
WBEM.tupletree_to_s(tt[2])
|
133
|
+
end
|
134
|
+
end
|
135
|
+
}"
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
data/ruby-wbem.spec
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
%{!?ruby_sitelib: %define ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")}
|
2
|
+
|
3
|
+
Summary: RubyWBEM is a pure-Ruby library for performing operations using the WBEM management protocol
|
4
|
+
Name: ruby-wbem
|
5
|
+
Version: 0.1
|
6
|
+
Release: 1
|
7
|
+
License: GPL
|
8
|
+
Group: Systems Management/Base
|
9
|
+
URL: http://rubyforge.org/projects/rubywbem
|
10
|
+
Source0: %{name}-%{version}.tar.gz
|
11
|
+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
12
|
+
BuildArchitectures: noarch
|
13
|
+
|
14
|
+
Requires: ruby >= 1.8.1
|
15
|
+
Requires: ruby(abi) = 1.8
|
16
|
+
BuildRequires: ruby >= 1.8.1
|
17
|
+
BuildRequires: ruby-devel
|
18
|
+
Provides: ruby(wbem)
|
19
|
+
|
20
|
+
%description
|
21
|
+
RubyWBEM is a pure-Ruby library for performing CIM operations over
|
22
|
+
HTTP using the WBEM management protocol. RubyWBEM originated as a
|
23
|
+
direct port of pyWbem (http://pywbem.sourceforge.net).
|
24
|
+
|
25
|
+
%prep
|
26
|
+
%setup -q
|
27
|
+
|
28
|
+
%build
|
29
|
+
|
30
|
+
%install
|
31
|
+
rm -rf $RPM_BUILD_ROOT
|
32
|
+
mkdir %{buildroot}
|
33
|
+
|
34
|
+
%{__install} -d -m0755 %{buildroot}%{ruby_sitelib}
|
35
|
+
%{__install} -d -m0755 %{buildroot}%{ruby_sitelib}/wbem
|
36
|
+
|
37
|
+
%{__install} -p -m0644 lib/wbem/*.rb %{buildroot}%{ruby_sitelib}/wbem
|
38
|
+
%{__install} -p -m0644 lib/wbem.rb %{buildroot}%{ruby_sitelib}
|
39
|
+
|
40
|
+
%clean
|
41
|
+
rm -rf $RPM_BUILD_ROOT
|
42
|
+
|
43
|
+
|
44
|
+
%files
|
45
|
+
%defattr(-,root,root,-)
|
46
|
+
%{ruby_sitelib}/wbem
|
47
|
+
%{ruby_sitelib}/wbem.rb
|
48
|
+
%doc AUTHORS CHANGELOG LICENSE README
|
49
|
+
|
50
|
+
|
51
|
+
%changelog
|
52
|
+
* Wed Sep 20 2006 <sseago@localhost.localdomain> -
|
53
|
+
- Initial build.
|
54
|
+
|
@@ -0,0 +1,324 @@
|
|
1
|
+
<!-- ************************************************** -->
|
2
|
+
<!-- -->
|
3
|
+
<!-- This DTD defines the schema for XML 1.0 Documents -->
|
4
|
+
<!-- representing CIM Element Declarations or Messages. -->
|
5
|
+
<!-- -->
|
6
|
+
<!-- DTD Version : 2.2 -->
|
7
|
+
<!-- DSP0203 -->
|
8
|
+
<!-- Date: December 09, 2004 -->
|
9
|
+
<!-- Status: Preliminary -->
|
10
|
+
<!-- ************************************************** -->
|
11
|
+
<!-- *********************************************************** -->
|
12
|
+
<!-- Copyright 2001-2004 Distributed Management Task Force, Inc. -->
|
13
|
+
<!-- All rights reserved. -->
|
14
|
+
<!-- DMTF is a not-for-profit association of industry members -->
|
15
|
+
<!-- dedicated to promoting enterprise and systems management -->
|
16
|
+
<!-- and interoperability. DMTF specifications and documents -->
|
17
|
+
<!-- may be reproduced for uses consistent with this purpose -->
|
18
|
+
<!-- by members and non-members, provided that correct -->
|
19
|
+
<!-- attribution is given. As DMTF specifications may be -->
|
20
|
+
<!-- revised from time to time, the particular version and -->
|
21
|
+
<!-- release date should always be noted. -->
|
22
|
+
<!-- Implementation of certain elements of this standard or -->
|
23
|
+
<!-- proposed standard may be subject to third party patent -->
|
24
|
+
<!-- rights, including provisional patent rights (herein -->
|
25
|
+
<!-- "patent rights"). DMTF makes no representations to users -->
|
26
|
+
<!-- of the standard as to the existence of such rights, and -->
|
27
|
+
<!-- is not responsible to recognize, disclose, or identify -->
|
28
|
+
<!-- any or all such third party patent right, owners or -->
|
29
|
+
<!-- claimants, nor for any incomplete or inaccurate -->
|
30
|
+
<!-- identification or disclosure of such rights, owners or -->
|
31
|
+
<!-- claimants. DMTF shall have no liability to any party, in -->
|
32
|
+
<!-- any manner or circumstance, under any legal theory -->
|
33
|
+
<!-- whatsoever, for failure to recognize, disclose, or -->
|
34
|
+
<!-- identify any such third party patent rights, or for such -->
|
35
|
+
<!-- party's reliance on the standard or incorporation -->
|
36
|
+
<!-- thereof in its product, protocols or testing procedures. -->
|
37
|
+
<!-- DMTF shall have no liability to any party implementing -->
|
38
|
+
<!-- such standard, whether such implementation is foreseeable -->
|
39
|
+
<!-- or not, nor to any patent owner or claimant, and shall -->
|
40
|
+
<!-- have no liability or responsibility for costs or losses -->
|
41
|
+
<!-- incurred if a standard is withdrawn or modified after -->
|
42
|
+
<!-- publication, and shall be indemnified and held harmless -->
|
43
|
+
<!-- by any party implementing the standard from any and all -->
|
44
|
+
<!-- claims of infringement by a patent owner for such -->
|
45
|
+
<!-- implementations. -->
|
46
|
+
<!-- For information about patents held by third-parties -->
|
47
|
+
<!-- which have notified the DMTF that, in their opinion, such -->
|
48
|
+
<!-- patent may relate to or impact implementations of DMTF -->
|
49
|
+
<!-- standards, visit -->
|
50
|
+
<!-- http://www.dmtf.org/about/policies/disclosures.php. -->
|
51
|
+
<!-- *********************************************************** -->
|
52
|
+
<!-- ************************************************** -->
|
53
|
+
<!-- Entity Declarations -->
|
54
|
+
<!-- ************************************************** -->
|
55
|
+
<!ENTITY % CIMName "NAME CDATA #REQUIRED">
|
56
|
+
<!ENTITY % CIMType "TYPE (boolean|string|char16|uint8|sint8|uint16|sint16|uint32|sint32|uint64|sint64|datetime|real32|real64)">
|
57
|
+
<!ENTITY % ParamType "PARAMTYPE (boolean|string|char16|uint8|sint8|uint16|sint16|uint32|sint32|uint64|sint64|datetime|real32|real64|reference)">
|
58
|
+
<!-- ************************************************** -->
|
59
|
+
<!-- DEPRECATION NOTE: The flavor TOINSTANCE is -->
|
60
|
+
<!-- DEPRECATED and MAY be removed from the -->
|
61
|
+
<!-- QualifierFlavor entity in a future version of this -->
|
62
|
+
<!-- document. Its usage is discouraged. -->
|
63
|
+
<!-- ************************************************** -->
|
64
|
+
<!ENTITY % QualifierFlavor "OVERRIDABLE (true|false) 'true'
|
65
|
+
TOSUBCLASS (true|false) 'true'
|
66
|
+
TOINSTANCE (true|false) 'false'
|
67
|
+
TRANSLATABLE (true|false) 'false'">
|
68
|
+
<!ENTITY % ClassOrigin "CLASSORIGIN CDATA #IMPLIED">
|
69
|
+
<!ENTITY % Propagated "PROPAGATED (true|false) 'false'">
|
70
|
+
<!ENTITY % ArraySize "ARRAYSIZE CDATA #IMPLIED">
|
71
|
+
<!ENTITY % SuperClass "SUPERCLASS CDATA #IMPLIED">
|
72
|
+
<!ENTITY % ClassName "CLASSNAME CDATA #REQUIRED">
|
73
|
+
<!ENTITY % ReferenceClass "REFERENCECLASS CDATA #IMPLIED">
|
74
|
+
<!-- ************************************************** -->
|
75
|
+
<!-- Root element -->
|
76
|
+
<!-- CIMVERSION must be in the form of "M.N". Where M -->
|
77
|
+
<!-- is the major revision of the specification in -->
|
78
|
+
<!-- numeric form and N is the minor revision of the -->
|
79
|
+
<!-- specification in numeric form. For example, -->
|
80
|
+
<!-- "2.0" or "2.3". -->
|
81
|
+
<!-- DTDVERSION must be in the form of "M.N". Where M -->
|
82
|
+
<!-- is the major revision of the specification in -->
|
83
|
+
<!-- numeric form and N is the minor revision of the -->
|
84
|
+
<!-- specification in numeric form. For example, -->
|
85
|
+
<!-- "2.0" or "2.1". -->
|
86
|
+
<!-- ************************************************** -->
|
87
|
+
<!ELEMENT CIM (MESSAGE | DECLARATION)>
|
88
|
+
<!ATTLIST CIM
|
89
|
+
CIMVERSION CDATA #REQUIRED
|
90
|
+
DTDVERSION CDATA #REQUIRED
|
91
|
+
>
|
92
|
+
<!-- ************************************************** -->
|
93
|
+
<!-- Object declaration elements -->
|
94
|
+
<!-- ************************************************** -->
|
95
|
+
<!ELEMENT DECLARATION (DECLGROUP | DECLGROUP.WITHNAME | DECLGROUP.WITHPATH)+>
|
96
|
+
<!ELEMENT DECLGROUP ((LOCALNAMESPACEPATH | NAMESPACEPATH)?, QUALIFIER.DECLARATION*, VALUE.OBJECT*)>
|
97
|
+
<!ELEMENT DECLGROUP.WITHNAME ((LOCALNAMESPACEPATH | NAMESPACEPATH)?, QUALIFIER.DECLARATION*, VALUE.NAMEDOBJECT*)>
|
98
|
+
<!ELEMENT DECLGROUP.WITHPATH (VALUE.OBJECTWITHPATH | VALUE.OBJECTWITHLOCALPATH)*>
|
99
|
+
<!ELEMENT QUALIFIER.DECLARATION (SCOPE?, (VALUE | VALUE.ARRAY)?)>
|
100
|
+
<!ATTLIST QUALIFIER.DECLARATION
|
101
|
+
%CIMName;
|
102
|
+
%CIMType; #REQUIRED
|
103
|
+
ISARRAY (true|false) #IMPLIED
|
104
|
+
%ArraySize;
|
105
|
+
%QualifierFlavor;>
|
106
|
+
<!ELEMENT SCOPE EMPTY>
|
107
|
+
<!ATTLIST SCOPE
|
108
|
+
CLASS (true | false) "false"
|
109
|
+
ASSOCIATION (true | false) "false"
|
110
|
+
REFERENCE (true | false) "false"
|
111
|
+
PROPERTY (true | false) "false"
|
112
|
+
METHOD (true | false) "false"
|
113
|
+
PARAMETER (true | false) "false"
|
114
|
+
INDICATION (true | false) "false"
|
115
|
+
>
|
116
|
+
<!-- ************************************************** -->
|
117
|
+
<!-- Object Value elements -->
|
118
|
+
<!-- ************************************************** -->
|
119
|
+
<!ELEMENT VALUE (#PCDATA)>
|
120
|
+
<!ELEMENT VALUE.ARRAY (VALUE*)>
|
121
|
+
<!ELEMENT VALUE.REFERENCE (CLASSPATH | LOCALCLASSPATH | CLASSNAME | INSTANCEPATH | LOCALINSTANCEPATH | INSTANCENAME)>
|
122
|
+
<!ELEMENT VALUE.REFARRAY (VALUE.REFERENCE*)>
|
123
|
+
<!ELEMENT VALUE.OBJECT (CLASS | INSTANCE)>
|
124
|
+
<!ELEMENT VALUE.NAMEDINSTANCE (INSTANCENAME, INSTANCE)>
|
125
|
+
<!ELEMENT VALUE.NAMEDOBJECT (CLASS | (INSTANCENAME, INSTANCE))>
|
126
|
+
<!ELEMENT VALUE.OBJECTWITHLOCALPATH ((LOCALCLASSPATH, CLASS) | (LOCALINSTANCEPATH, INSTANCE))>
|
127
|
+
<!ELEMENT VALUE.OBJECTWITHPATH ((CLASSPATH, CLASS) | (INSTANCEPATH, INSTANCE))>
|
128
|
+
<!ELEMENT VALUE.NULL EMPTY>
|
129
|
+
|
130
|
+
<!-- ************************************************** -->
|
131
|
+
<!-- Object naming and locating elements -->
|
132
|
+
<!-- ************************************************** -->
|
133
|
+
<!ELEMENT NAMESPACEPATH (HOST, LOCALNAMESPACEPATH)>
|
134
|
+
<!ELEMENT LOCALNAMESPACEPATH (NAMESPACE+)>
|
135
|
+
<!ELEMENT HOST (#PCDATA)>
|
136
|
+
<!ELEMENT NAMESPACE EMPTY>
|
137
|
+
<!ATTLIST NAMESPACE
|
138
|
+
%CIMName;
|
139
|
+
>
|
140
|
+
<!ELEMENT CLASSPATH (NAMESPACEPATH, CLASSNAME)>
|
141
|
+
<!ELEMENT LOCALCLASSPATH (LOCALNAMESPACEPATH, CLASSNAME)>
|
142
|
+
<!ELEMENT CLASSNAME EMPTY>
|
143
|
+
<!ATTLIST CLASSNAME
|
144
|
+
%CIMName;
|
145
|
+
>
|
146
|
+
<!ELEMENT INSTANCEPATH (NAMESPACEPATH, INSTANCENAME)>
|
147
|
+
<!ELEMENT LOCALINSTANCEPATH (LOCALNAMESPACEPATH, INSTANCENAME)>
|
148
|
+
<!ELEMENT INSTANCENAME (KEYBINDING* | KEYVALUE? | VALUE.REFERENCE?)>
|
149
|
+
<!ATTLIST INSTANCENAME
|
150
|
+
%ClassName;
|
151
|
+
>
|
152
|
+
<!ELEMENT OBJECTPATH (INSTANCEPATH | CLASSPATH)>
|
153
|
+
<!ELEMENT KEYBINDING (KEYVALUE | VALUE.REFERENCE)>
|
154
|
+
<!ATTLIST KEYBINDING
|
155
|
+
%CIMName;
|
156
|
+
>
|
157
|
+
<!ELEMENT KEYVALUE (#PCDATA)>
|
158
|
+
<!ATTLIST KEYVALUE
|
159
|
+
VALUETYPE (string | boolean | numeric) "string"
|
160
|
+
%CIMType; #IMPLIED>
|
161
|
+
|
162
|
+
<!-- ************************************************** -->
|
163
|
+
<!-- Object definition elements -->
|
164
|
+
<!-- ************************************************** -->
|
165
|
+
<!ELEMENT CLASS (QUALIFIER*, (PROPERTY | PROPERTY.ARRAY | PROPERTY.REFERENCE)*, METHOD*)>
|
166
|
+
<!ATTLIST CLASS
|
167
|
+
%CIMName;
|
168
|
+
%SuperClass;
|
169
|
+
>
|
170
|
+
<!ELEMENT INSTANCE (QUALIFIER*, (PROPERTY | PROPERTY.ARRAY | PROPERTY.REFERENCE)*)>
|
171
|
+
<!ATTLIST INSTANCE
|
172
|
+
%ClassName;
|
173
|
+
xml:lang NMTOKEN #IMPLIED
|
174
|
+
>
|
175
|
+
<!ELEMENT QUALIFIER ((VALUE | VALUE.ARRAY)?)>
|
176
|
+
<!ATTLIST QUALIFIER
|
177
|
+
%CIMName;
|
178
|
+
%CIMType; #REQUIRED
|
179
|
+
%Propagated;
|
180
|
+
%QualifierFlavor;
|
181
|
+
xml:lang NMTOKEN #IMPLIED
|
182
|
+
>
|
183
|
+
<!ELEMENT PROPERTY (QUALIFIER*, VALUE?)>
|
184
|
+
<!ATTLIST PROPERTY
|
185
|
+
%CIMName;
|
186
|
+
%ClassOrigin;
|
187
|
+
%Propagated;
|
188
|
+
%CIMType; #REQUIRED
|
189
|
+
xml:lang NMTOKEN #IMPLIED
|
190
|
+
>
|
191
|
+
<!ELEMENT PROPERTY.ARRAY (QUALIFIER*, VALUE.ARRAY?)>
|
192
|
+
<!ATTLIST PROPERTY.ARRAY
|
193
|
+
%CIMName;
|
194
|
+
%CIMType; #REQUIRED
|
195
|
+
%ArraySize;
|
196
|
+
%ClassOrigin;
|
197
|
+
%Propagated;
|
198
|
+
xml:lang NMTOKEN #IMPLIED
|
199
|
+
>
|
200
|
+
<!ELEMENT PROPERTY.REFERENCE (QUALIFIER*, (VALUE.REFERENCE)?)>
|
201
|
+
<!ATTLIST PROPERTY.REFERENCE
|
202
|
+
%CIMName;
|
203
|
+
%ReferenceClass;
|
204
|
+
%ClassOrigin;
|
205
|
+
%Propagated;
|
206
|
+
>
|
207
|
+
<!ELEMENT METHOD (QUALIFIER*, (PARAMETER | PARAMETER.REFERENCE | PARAMETER.ARRAY | PARAMETER.REFARRAY)*)>
|
208
|
+
<!ATTLIST METHOD
|
209
|
+
%CIMName;
|
210
|
+
%CIMType; #IMPLIED
|
211
|
+
%ClassOrigin;
|
212
|
+
%Propagated;>
|
213
|
+
<!ELEMENT PARAMETER (QUALIFIER*)>
|
214
|
+
<!ATTLIST PARAMETER
|
215
|
+
%CIMName;
|
216
|
+
%CIMType; #REQUIRED>
|
217
|
+
<!ELEMENT PARAMETER.REFERENCE (QUALIFIER*)>
|
218
|
+
<!ATTLIST PARAMETER.REFERENCE
|
219
|
+
%CIMName;
|
220
|
+
%ReferenceClass;
|
221
|
+
>
|
222
|
+
<!ELEMENT PARAMETER.ARRAY (QUALIFIER*)>
|
223
|
+
<!ATTLIST PARAMETER.ARRAY
|
224
|
+
%CIMName;
|
225
|
+
%CIMType; #REQUIRED
|
226
|
+
%ArraySize;>
|
227
|
+
<!ELEMENT PARAMETER.REFARRAY (QUALIFIER*)>
|
228
|
+
<!ATTLIST PARAMETER.REFARRAY
|
229
|
+
%CIMName;
|
230
|
+
%ReferenceClass;
|
231
|
+
%ArraySize;
|
232
|
+
>
|
233
|
+
<!ELEMENT TABLECELL.DECLARATION EMPTY>
|
234
|
+
<!ATTLIST TABLECELL.DECLARATION
|
235
|
+
%CIMName;
|
236
|
+
%CIMType; #REQUIRED
|
237
|
+
ISARRAY (true|false) "false"
|
238
|
+
%ArraySize;
|
239
|
+
CELLPOS CDATA #REQUIRED
|
240
|
+
SORTPOS CDATA #IMPLIED
|
241
|
+
SORTDIR (ASC|DESC) #IMPLIED
|
242
|
+
>
|
243
|
+
<!ELEMENT TABLECELL.REFERENCE EMPTY>
|
244
|
+
<!ATTLIST TABLECELL.REFERENCE
|
245
|
+
%CIMName;
|
246
|
+
%ReferenceClass;
|
247
|
+
ISARRAY (true|false) "false"
|
248
|
+
%ArraySize;
|
249
|
+
CELLPOS CDATA #REQUIRED
|
250
|
+
SORTPOS CDATA #IMPLIED
|
251
|
+
SORTDIR (ASC|DESC) #IMPLIED
|
252
|
+
>
|
253
|
+
<!ELEMENT TABLEROW.DECLARATION ( TABLECELL.DECLARATION | TABLECELL.REFERENCE)*>
|
254
|
+
<!ELEMENT TABLE (TABLEROW.DECLARATION,(TABLEROW)*)>
|
255
|
+
<!ELEMENT TABLEROW ( VALUE | VALUE.ARRAY | VALUE.REFERENCE | VALUE.REFARRAY | VALUE.NULL)*>
|
256
|
+
|
257
|
+
<!-- ************************************************** -->
|
258
|
+
<!-- Message elements -->
|
259
|
+
<!-- ************************************************** -->
|
260
|
+
<!ELEMENT MESSAGE (SIMPLEREQ | MULTIREQ | SIMPLERSP | MULTIRSP | SIMPLEEXPREQ | MULTIEXPREQ | SIMPLEEXPRSP | MULTIEXPRSP)>
|
261
|
+
<!ATTLIST MESSAGE
|
262
|
+
ID CDATA #REQUIRED
|
263
|
+
PROTOCOLVERSION CDATA #REQUIRED
|
264
|
+
>
|
265
|
+
<!ELEMENT MULTIREQ (SIMPLEREQ, SIMPLEREQ+)>
|
266
|
+
<!ELEMENT MULTIEXPREQ (SIMPLEEXPREQ, SIMPLEEXPREQ+)>
|
267
|
+
<!ELEMENT SIMPLEREQ (IMETHODCALL | METHODCALL)>
|
268
|
+
<!ELEMENT SIMPLEEXPREQ (EXPMETHODCALL)>
|
269
|
+
<!ELEMENT IMETHODCALL (LOCALNAMESPACEPATH, IPARAMVALUE*, RESPONSEDESTINATION?)>
|
270
|
+
<!ATTLIST IMETHODCALL
|
271
|
+
%CIMName;
|
272
|
+
>
|
273
|
+
<!ELEMENT METHODCALL ((LOCALINSTANCEPATH | LOCALCLASSPATH), PARAMVALUE*, RESPONSEDESTINATION?)>
|
274
|
+
<!ATTLIST METHODCALL
|
275
|
+
%CIMName;
|
276
|
+
>
|
277
|
+
<!ELEMENT EXPMETHODCALL (EXPPARAMVALUE*)>
|
278
|
+
<!ATTLIST EXPMETHODCALL
|
279
|
+
%CIMName;
|
280
|
+
>
|
281
|
+
<!ELEMENT PARAMVALUE (VALUE | VALUE.REFERENCE | VALUE.ARRAY | VALUE.REFARRAY)?>
|
282
|
+
<!ATTLIST PARAMVALUE
|
283
|
+
%CIMName;
|
284
|
+
%ParamType; #IMPLIED
|
285
|
+
>
|
286
|
+
<!ELEMENT IPARAMVALUE (VALUE | VALUE.ARRAY | VALUE.REFERENCE | INSTANCENAME | CLASSNAME | QUALIFIER.DECLARATION | CLASS | INSTANCE | VALUE.NAMEDINSTANCE)?>
|
287
|
+
<!ATTLIST IPARAMVALUE
|
288
|
+
%CIMName;
|
289
|
+
>
|
290
|
+
<!ELEMENT EXPPARAMVALUE (INSTANCE?|VALUE?|METHODRESPONSE?|IMETHODRESPONSE?)>
|
291
|
+
<!ATTLIST EXPPARAMVALUE
|
292
|
+
%CIMName;
|
293
|
+
>
|
294
|
+
<!ELEMENT MULTIRSP (SIMPLERSP, SIMPLERSP+)>
|
295
|
+
<!ELEMENT MULTIEXPRSP (SIMPLEEXPRSP, SIMPLEEXPRSP+)>
|
296
|
+
<!ELEMENT SIMPLERSP (METHODRESPONSE | IMETHODRESPONSE | SIMPLEREQACK)>
|
297
|
+
<!ELEMENT SIMPLEEXPRSP (EXPMETHODRESPONSE)>
|
298
|
+
<!ELEMENT METHODRESPONSE (ERROR|(RETURNVALUE?,PARAMVALUE*))>
|
299
|
+
<!ATTLIST METHODRESPONSE
|
300
|
+
%CIMName;
|
301
|
+
>
|
302
|
+
<!ELEMENT EXPMETHODRESPONSE (ERROR|IRETURNVALUE?)>
|
303
|
+
<!ATTLIST EXPMETHODRESPONSE
|
304
|
+
%CIMName;
|
305
|
+
>
|
306
|
+
<!ELEMENT IMETHODRESPONSE (ERROR|IRETURNVALUE?)>
|
307
|
+
<!ATTLIST IMETHODRESPONSE
|
308
|
+
%CIMName;
|
309
|
+
>
|
310
|
+
<!ELEMENT ERROR (INSTANCE*)>
|
311
|
+
<!ATTLIST ERROR
|
312
|
+
CODE CDATA #REQUIRED
|
313
|
+
DESCRIPTION CDATA #IMPLIED
|
314
|
+
>
|
315
|
+
<!ELEMENT RETURNVALUE (VALUE | VALUE.REFERENCE)>
|
316
|
+
<!ATTLIST RETURNVALUE
|
317
|
+
%ParamType; #IMPLIED
|
318
|
+
>
|
319
|
+
<!ELEMENT IRETURNVALUE (CLASSNAME* | INSTANCENAME* | VALUE* | VALUE.OBJECTWITHPATH* | VALUE.OBJECTWITHLOCALPATH* | VALUE.OBJECT* | OBJECTPATH* | QUALIFIER.DECLARATION* | VALUE.ARRAY? | VALUE.REFERENCE? | CLASS* | INSTANCE* | VALUE.NAMEDINSTANCE*)>
|
320
|
+
<!ELEMENT RESPONSEDESTINATION (INSTANCE)>
|
321
|
+
<!ELEMENT SIMPLEREQACK (ERROR?)>
|
322
|
+
<!ATTLIST SIMPLEREQACK
|
323
|
+
INSTANCEID CDATA #REQUIRED
|
324
|
+
>
|