<xsd:element name="metadata" type="meta:Metadata"/>
<xsd:complexType name="Metadata">
<xsd:sequence>
<xsd:element ref="meta:metadataType"/>
<xsd:element ref="meta:metadataValue"/>
</xsd:sequence>
<xsd:attribute ref="meta:metadataKey" use="required"/>
</xsd:complexType>
Any metadata in Grimoires consists of three items:
<xsd:element name="metadataValue" type="meta:MetadataValue"/>
<xsd:complexType name="MetadataValue">
<xsd:choice>
<xsd:element ref="meta:triplesAssertion"/>
<xsd:element ref="meta:stringValue"/>
<xsd:element ref="meta:uriValue"/>
</xsd:choice>
</xsd:complexType>
A triples assertion is defined as:
<xsd:element name="triplesAssertion" type="meta:TriplesAssertion"/>
<xsd:complexType name="TriplesAssertion">
<xsd:sequence>
<xsd:element name="triples" type="xsd:string"/>
<xsd:element name="resourceIdentifier" type="xsd:string"/>
<xsd:element name="language" type="xsd:string"/>
<xsd:element name="base" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
where
<xsd:element name="metadataInfo" type="meta:MetadataInfo"/>
<xsd:complexType name="MetadataInfo">
<xsd:sequence>
<xsd:element ref="meta:metadataType"/>
<xsd:element ref="meta:metadataValue"/>
<xsd:element ref="meta:author"/>
<xsd:element ref="meta:date"/>
</xsd:sequence>
<xsd:attribute ref="meta:metadataKey" use="required"/>
</xsd:complexType>
<xsd:complexType name="EntityReference">
<xsd:choice>
<xsd:element name="stringKey" type="xsd:string"/>
<xsd:element ref="meta:metadataKey"/>
<xsd:element ref="meta:messagePartReference"/>
<xsd:element ref="meta:operationReference"/>
</xsd:choice>
<xsd:attribute name="entityType" type="anyURI" use="required"/>
</xsd:complexType>
<xsd:complexType name="MessagePartReference">
<xsd:sequence>
<xsd:element ref="meta:messageNamespace"/>
<xsd:element ref="meta:messageName"/>
<xsd:element ref="meta:messagePartName"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="OperationReference">
<xsd:sequence>
<xsd:element name="portTypeNamespace" type="xsd:string"/>
<xsd:element name="portTypeName" type="xsd:string"/>
<xsd:element name="operationName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
We use MessagePartReference and OperationReference to uniquely identify a
message part or an operation within a WSDL file, respectively.
<xsd:element name="metadataQueryBag" type="meta:MetadataQueryBag"/>
<xsd:complexType name="MetadataQueryBag">
<xsd:sequence>
<xsd:element ref="meta:metadataQuery" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
Each metadataQuery specifies a metadataType and a metadataValue to search on. An optional findQualifiers can be used. Currently, only two findQualifier (wildCardSearch and caseSensitiveSearch) are supported for string based metadataValues. By default string comparisons are done as exact string matches.
<xsd:element name="metadataQuery" type="meta:MetadataQuery"/>
<xsd:complexType name="MetadataQuery">
<xsd:sequence>
<xsd:element ref="meta:findQualifiers" minOccurs="0"/>
<xsd:element ref="meta:metadataType"/>
<xsd:element ref="meta:metadataValue"/>
<xsd:element ref="meta:author" minOccurs="0"/>
<xsd:element ref="meta:date" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FaultDetailList">
<xsd:sequence>
<xsd:element ref="meta:faultDetail" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
The detail of the error can be found within the errorMessage element.
<addMetadataToEntity>
<entityReference/>
<metadata/>
</addMetadataToEntity>
The corresponding XML schema is:
<xsd:complexType name="AddMetadataToEntity">
<xsd:sequence>
<xsd:element ref="meta:entityReference"/>
<xsd:element ref="meta:metadata"/>
</xsd:sequence>
</xsd:complexType>
<deleteMetadata>
<metadataKey/>
[<metadataKey/> ...]
</deleteMetadata>
The corresponding XML schema is:
<xsd:complexType name="DeleteMetadata">
<xsd:sequence>
<xsd:element ref="meta:metadataKey"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="success" type="xsd:boolean"/>TRUE represents for success, FALSE for failure.
<get_entityMetadata>
<entityReference/>
[<entityReference/> ...]
</get_entityMetadata>
The corresponding XML schema is:
<xsd:complexType name="Get_entityMetadata">
<xsd:sequence>
<xsd:element ref="meta:entityReference"/>
</xsd:sequence>
</xsd:complexType>
<get_metadataDetail>
<metadataKey/>
[<metadataKey/> ...]
</get_metadataDetail>
The corresponding XML schema is:
<xsd:complexType name="Get_metadataDetail">
<xsd:sequence>
<xsd:element ref="meta:metadataKey"/>
</xsd:sequence>
</xsd:complexType>
<find_entityByMetadata>
<metadataQueryBag>
<metadataQuery/>
[<metadataQuery/> ...]
</metadataQueryBag>
</find_entityByMetadata>
<xsd:element name="entityReferenceList" type="meta:EntityReferenceList"/>
<xsd:complexType name="EntityReferenceList">
<xsd:sequence>
<xsd:element ref="meta:entityReference" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
This section contains UDDI inquiry operations that have been extended to support metadata based searching.
<meta:find_service [businessKey="uuid_key"] [maxRows="nn"] generic="2.0" xmlns:uddi="urn:uddi-org:api_v2">
[<meta:findQualifiers/>]
[<uddi:name/> [<uddi:name/>]бн]
[<uddi:categoryBag/>]
[<uddi:tModelBag/>]
[<meta:metadataQueryBag/>]
</meta:find_service>
The corresponding XML schema is:
<xsd:element name="find_service" type="meta:Find_service"/>
<xsd:complexType name="Find_service">
<xsd:sequence>
<xsd:element ref="meta:findQualifiers" minOccurs="0"/>
<xsd:element ref="uddi:name" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="uddi:categoryBag" minOccurs="0"/>
<xsd:element ref="uddi:tModelBag" minOccurs="0"/>
<xsd:element ref="meta:metadataQueryBag" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="generic" type="string" use="required"/>
<xsd:attribute name="maxRows" type="int" use="optional"/>
<xsd:attribute name="businessKey" type="uddi:businessKey" use="optional"/>
</xsd:complexType>
<find_interfaceByMessagePartMetadata>
<metadataQueryBag/>
[<metadataQueryBag/> ...]
</find_interfaceByMessagePartMetadata>
The corresponding XML schema is:
<xsd:complexType name="Find_interfaceByMessagePartMetadata">
<xsd:sequence>
<xsd:element ref="meta:metadataQueryBag"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="uriBag" type="meta:uriBag"/>
<xsd:element name="uri" type="xsd:anyURI"/>
<xsd:complexType name="uriBag">
<xsd:sequence>
<xsd:element ref="meta:uri" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<find_interfaceByOperationMetadata>
<metadataQueryBag/>
[<metadataQueryBag/> ...]
</find_interfaceByOperationMetadata>
The corresponding XML schema is:
<xsd:complexType name="Find_interfaceByOperationMetadata">
<xsd:sequence>
<xsd:element ref="meta:metadataQueryBag"/>
</xsd:sequence>
</xsd:complexType>
<addWSDLFileRequest/>The corresponding XML schema is:
<element name="addWSDLFileRequest" type="string" />
<element name="addWSDLFileResponse" type="string" />A string representing the WSDL key, which is the UUID for this WSDL file.
<addWSDLFileAdvertRequest> <url/> <content/> </addWSDLFileAdvertRequest>The corresponding XML schema is:
<complexType name="addWSDLFileAdvertRequest">
<sequence>
<element name="url" type="string" />
<element name="content" type="string" />
</sequence>
</complexType>
<element name="addWSDLFileAdvertResponse" type="string" />A string representing the WSDL key, which is the UUID for this WSDL file.
<getWSDLAdvertContentRequest/>The corresponding XML schema is:
<element name="getWSDLAdvertContentRequest" type="string" />
<element name="getWSDLAdvertContentResponse" type="string" />the content of WSDL file.
<getWSDLAdvertContentByURLRequest/>The corresponding XML schema is:
<element name="getWSDLAdvertContentByURLRequest" type="string" />
<element name="getWSDLAdvertContentByURLResponse" type="string" />the content of WSDL file.
<removeWSDLFileRequest/>The corresponding XML schema is:
<element name="removeWSDLFileRequest" type="string" />
<element name="removeWSDLFileResponse" type="boolean" />True or false indicating whether the deletion operation is successful.
<findServicesByInterfaceRequest/>The corresponding XML schema is:
<element name="findServicesByInterfaceRequest" type="string" />
<complexType name="findServicesByInterfaceResponse">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="serviceKey" type="string" />
</sequence>
</complexType>
The UDDI service keys.
<getAllWSDLFilesRequest/>The corresponding XML schema is:
<complexType name="getAllWSDLFilesRequest"/>
<complexType name="getAllWSDLFilesResponse">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="url" type="string" />
</sequence>
</complexType>
the urls of all registered WSDLs.
<getOperationsByURLRequest/>The corresponding XML schema is:
<element name="getOperationsByURLRequest" type="string" />
<complexType name="getOperationsByURLResponse">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="operationDetail" type="tns:operationDetail" />
</sequence>
</complexType>
<complexType name="operationDetail">
<sequence>
<element name="portTypeNamespace" type="string"/>
<element name="portTypeName" type="string"/>
<element name="operationName" type="string"/>
</sequence>
</complexType>
an array of OperationDetail that describes the names of all operations defined in this WSDL. Each OperationDetail unambiguously describes the name of an operation.
<getInputMessageOfOperationRequest/> <getOutputMessageOfOperationRequest/> <getFaultMessageOfOperationRequest/>The corresponding XML schema is:
<element name="getInputMessageOfOperationRequest" type="tns:operationDetail" /> <element name="getOutputMessageOfOperationRequest" type="tns:operationDetail" /> <element name="getFaultMessageOfOperationRequest" type="tns:operationDetail" />
<element name="getInputMessageOfOperationResponse" type="tns:messageDetail" />
<element name="getOutputMessageOfOperationResponse" type="tns:messageDetail" />
<element name="getFaultMessageOfOperationResponse" type="tns:messageDetail" />
<complexType name="messageDetail">
<sequence>
<element name="messageNamespace" type="string"/>
<element name="messageName" type="string"/>
<element name="partsName" type="tns:partsName"/>
</sequence>
</complexType>
<complexType name="partsName">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="name" type="string" />
</sequence>
</complexType>
An MessageDetail object that gives the information for an input, output, or fault message: the namespace of the message, the name of the message, and the names of all parts of the message.
<findInterfaceByOperationRequest/>The corresponding XML schema is:
<element name="findInterfaceByOperationRequest" type="tns:operationDetail" />
<element name="findInterfaceByOperationResponse" type="string" />The url of the found WSDL.
<findOperationByMessagePartRequest> <messageNamespace/> <messageName/> <partName/> </findOperationByMessagePartRequest>The corresponding XML schema is:
<element name="findOperationByMessagePartRequest" type="tns:messagePartDetail" />
<complexType name="messagePartDetail">
<sequence>
<element name="messageNamespace" type="string"/>
<element name="messageName" type="string"/>
<element name="partName" type="string"/>
</sequence>
</complexType>
<element name="findOperationByMessagePartResponse" type="tns:operationDetail" />The found operation.