2025-04-27 07:49:33 -04:00

264 lines
12 KiB
XML

<?xml version="1.0"?>
<!-- ********************************************************************** -->
<!-- -->
<!-- Copyright (c) 2000-2001 Microsoft Corporation -->
<!-- -->
<!-- This schema defines the SOAP signatures (call and response) for WMI -->
<!-- Operations. -->
<!-- -->
<!-- TODO: -->
<!-- - Describe semisynchronous and asynchronous calls -->
<!-- - Describe ExecMethod -->
<!-- - Describe "helper" methods -->
<!-- e.g. GetClassDynasty, GetMultiAssociators -->
<!-- -->
<!-- ********************************************************************** -->
<schema targetNamespace="http://www.microsoft.com/wmi/soap/1.0"
xmlns:tns="http://www.microsoft.com/wmi/soap/1.0"
xmlns="http://www.w3.org/1999/XMLSchema">
<!-- ************************************************************** -->
<!-- Common types -->
<!-- ************************************************************** -->
<!-- ################################################################## -->
<!-- Types to represent a WMI class, instance or object -->
<!-- ################################################################## -->
<!-- The following MUST be a schema that describes a WMI class -->
<element name="WMIClass" type="schema"/>
<!-- The following MUST be a valid WMI instance -->
<element name="WMIInstance" type="any"/>
<!-- The following represents some WMI object (possibly the result -->
<!-- of a join or projection query). -->
<element name="WMIObject" type="any"/>
<!-- ################################################################## -->
<!-- Generic parameters -->
<!-- ################################################################## -->
<element name="Namespace" type="string"/>
<element name="Locale" type="string" minOccurs="0"/>
<element name="Context" type="tns:Context" minOccurs="0"/>
<!-- ################################################################## -->
<!-- The CreateMode type defines the semantics of a Put -->
<!-- ################################################################## -->
<simpleType name="CreateMode" base="NMTOKEN">
<enumeration value="CreateOrUpdate"/>
<enumeration value="CreateOnly"/>
<enumeration value="UpdateOnly"/>
</simpleType>
<!-- ################################################################## -->
<!-- The UpdateMode type defines how brutal Put's can be -->
<!-- ################################################################## -->
<simpleType name="UpdateMode" base="NMTOKEN">
<enumeration value="Compatible"/>
<enumeration value="Safe"/>
<enumeration value="Force"/>
</simpleType>
<!-- ################################################################## -->
<!-- The Context type models an unordered sequence of name-value pairs -->
<!-- ################################################################## -->
<complexType name="Context">
<sequence maxOccurs="unbounded">
<element name="Item" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="Name" type="string"/>
<element name="Value" type="any"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
<!-- ************************************************************** -->
<!-- Operations -->
<!-- ************************************************************** -->
<!-- ################################################################## -->
<!-- DeleteClass -->
<!-- ################################################################## -->
<element name="DeleteClass">
<complexType>
<all>
<element ref="tns:Namespace"/>
<element ref="tns:Locale"/>
<element ref="tns:Context"/>
<element name="ClassName" type="string"/>
</all>
</complexType>
</element>
<element name="DeleteClassResponse">
<complexType/> <!-- empty -->
</element>
<!-- ################################################################## -->
<!-- DeleteInstance -->
<!-- ################################################################## -->
<element name="DeleteInstance">
<complexType>
<all>
<element ref="tns:Namespace"/>
<element ref="tns:Locale"/>
<element ref="tns:Context"/>
<element name="InstanceName" type="string"/>
</all>
</complexType>
</element>
<element name="DeleteInstanceResponse">
<complexType/> <!-- empty -->
</element>
<!-- ################################################################## -->
<!-- GetObject -->
<!-- ################################################################## -->
<element name="GetObject">
<complexType>
<all>
<element ref="tns:Namespace"/>
<element ref="tns:Locale"/>
<element ref="tns:Context"/>
<element name="ObjectName" type="string" minOccurs="0"/>
<element name="UseAmendedQualifiers" type="boolean" default="true"/>
<element name="DirectRead" type="bool" default="false"/>
</all>
</complexType>
</element>
<element name="GetObjectResponse">
<complexType>
<choice>
<element name="Class" type="tns:WMIClass"/>
<element name="Instance" type="tns:WMIInstance"/>
</choice>
</complexType>
</element>
<!-- ################################################################## -->
<!-- PutClass -->
<!-- ################################################################## -->
<element name="PutClass">
<complexType>
<all>
<element ref="tns:Namespace"/>
<element ref="tns:Locale"/>
<element ref="tns:Context"/>
<element name="Class" type="tns:WMIClass"/>
<element name="UseAmendedQualifiers" type="boolean" default="true"/>
<element name="CreateMode" type="tns:CreateMode" default="CreateOrUpdate"/>
<element name="UpdateMode" type="tns:UpdateMode" default="Compatible"/>
</all>
</complexType>
</element>
<element name="PutClassResponse">
<complexType/> <!-- Empty -->
</element>
<!-- ################################################################## -->
<!-- PutInstance -->
<!-- ################################################################## -->
<element name="PutInstance">
<complexType>
<all>
<element ref="tns:Namespace"/>
<element ref="tns:Locale"/>
<element ref="tns:Context"/>
<element name="Instance" type="tns:WMIInstance"/>
<element name="UseAmendedQualifiers" type="bool" default="true"/>
<element name="CreateMode" type="CreateMode" default="CreateOrUpdate"/>
</all>
</complexType>
</element>
<element name="PutInstanceResponse">
<complexType>
<sequence>
<!-- The path to the new instance -->
<element name="Path" type="string"/>
</sequence>
</complexType>
</element>
<!-- ################################################################## -->
<!-- ExecQuery -->
<!-- ################################################################## -->
<element name="ExecQuery">
<complexType>
<all>
<element ref="tns:Namespace"/>
<element ref="tns:Locale"/>
<element ref="tns:Context"/>
<element name="QueryLanguage" type="string" default="WQL"/>
<element name="Query" type="string"/>
<element name="UseAmendedQualifiers" type="bool" default="true"/>
<element name="DirectRead" type="bool" default="false"/>
<element name="EnsureLocatable" type="bool" default="false"/>
<element name="Prototype" type="bool" default="false"/>
</all>
</complexType>
</element>
<element name="ExecQueryResponse">
<complexType>
<!-- each returned item can be a WMI instance or class
or some projection thereof -->
<choice minOccurs="0" maxOccurs="unbounded">
<element name="Object" type="tns:WMIObject"/>
<element name="Class" type="tns:WMIClass"/>
<element name="Instance" type="tns:WMIInstance"/>
</choice>
</complexType>
</element>
<!-- ################################################################## -->
<!-- GetClasses -->
<!-- ################################################################## -->
<element name="GetClasses">
<complexType>
<all>
<element ref="tns:Namespace"/>
<element ref="tns:Locale"/>
<element ref="tns:Context"/>
<element name="ClassBasis" type="string" minOccurs="0"/>
<element name="UseAmendedQualifiers" type="bool" default="true"/>
<element name="Deep" type="bool" default="true"/>
</all>
</complexType>
</element>
<element name="GetClassesResponse">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="Class" type="tns:WMIClass"/>
</sequence>
</complexType>
</element>
<!-- ################################################################## -->
<!-- GetInstances -->
<!-- ################################################################## -->
<element name="GetInstances">
<complexType>
<all>
<element ref="tns:Namespace"/>
<element ref="tns:Locale"/>
<element ref="tns:Context"/>
<element name="ClassBasis" type="string"/>
<element name="UseAmendedQualifiers" type="bool" default="true"/>
<element name="DirectRead" type="bool" default="false"/>
<element name="Deep" type="bool" default="true"/>
</all>
</complexType>
</element>
<element name="GetInstancesResponse">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="Instance" type="tns:WMIInstance"/>
</sequence>
</complexType>
</element>
</schema>