Hi Dan, Thanks for your response.
I'll reiterate just to make sure we're aligned: The GetMetadata operation accepts two parameters: Dialect, and Identifier The Dialect parameter specifies the type of Document to be retrieved. The Identifier parameter specifies the desired Namespace of the Metadata to be retrieved. In my case, I want to retrieve the XSD that contains my Resource Manager's custom Resource Properties (ones that I have defined). According to the WS-MEX specification, I would issue a request with the following parameters: Dialect: http://www.w3.org/2001/XMLSchema Identifier: http://mymanagersite.com/services/myManager To fully support the specification, however, it should be possible to omit the Identifier parameter, which should return all XML Schema Metadata defined by the Resource Manager. I believe we can better conceptualize this if we think of the XML Schema as "collections of Metadata (categorized by Namespace)" rather than independent documents. In terms of implementation, I don't think this should be too difficult. Muse aggregates everything into the WSDL document, so it should be possible to parse out the desired Metadata by matching against the Dialect and Identifier parameters. To elaborate: In the WSDL Document, XML schema is defined as: <wsdl:definitions .. xmlns:xsd="http://www.w3.org/2001/XMLSchema" ...> The GetMetadata operation, with a specified Dialect of "http://www.w3.org/2001/XMLSchema", should be able to parse out all elements that begin with <xsd:.> That takes care of parsing out the XML Schema from the WSDL. The next step is to parse out only the XML Schema that belongs to the desired Namespace. Referring to the section of my WSDL that includes the XML schema for my resource (after Muse has combined everything), we have: <xsd:schema elementFormDefault="qualified" targetNamespace="http://mymanagersite.com/services/myManager" > The GetMetadata operation should be able to identify the namespace declared here (and match it to the Identifier parameter), so that it only returns the elements in that section. Here is my motivation: It is important to have access to the XML Schema for a Resource Manager, because it contains the Resource Properties' data type declarations. It also allows retrieval of the available Resource Properties without querying their values (it doesn't depend on the state of the Resource). Currently, I am using GetMetadata to retrieve the entire WSDL document, and then parsing out the XML schema I need. This involves a data transfer of over 100 kilobytes, which is rather inefficient, considering that I only need the XML schema (which amounts to about 3 kilobytes in my case). I believe the same effect could be achieved much more efficiently by fully implementing the GetMetadata operation. Your thoughts? - Jared Zebedee [EMAIL PROTECTED] -----Original Message----- From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] Sent: Wednesday, March 28, 2007 8:54 AM To: [email protected] Cc: 'Wilson, Kirk D'; [email protected] Subject: Re: Using GetMetadata to obtain XML Schema Document The 09/2004 spec seems to offer identifiers for WSDL, XSD, and WS-Policy, but WSDL was the only one that made sense for us given the effort we go to in resolving the WSDL and making it available to the client (without resolving the imports, you'd have to do a lot of plumbing to get all the docs on disk and then parse them). I guess my question is, if you use the XSD identifier, do you want all schema files? When you say "the XSD", it implies there is one - perhaps the one you wrote, and not the WS-* XSDs. Let me know what you meant so I can offer a suggestion on achieving this. Also - the response you get is the closest WS-MEX has as far as indicating "no metadata". The spec doesn't have any faults for GetMetadata, so the simplest thing was to return no metadata elements for the given dialect/identifier pair. Dan "Jared A. Zebedee" <[EMAIL PROTECTED]> wrote on 03/27/2007 05:55:44 PM: > Greetings all, > > I am attempting to use the GetMetadata operation to retrieve the XML > Schema Document for a MUWS Resource Manager. > > The GetMetadata operation accepts 2 parameters: Dialect, and Identifier > > According to the specification, acceptable values for Dialect include: > > http://www.w3.org/2001/XMLSchema (For retrieving the XML Schema > document) > http://schemas.xmlsoap.org/wsdl/ (For retrieving the WSDL document) > > I have successfully used the GetMetadata operation to obtain the entire > WSDL document. However, when I try to use it to obtain the XML Schema > Document, the response I receive is empty (I get a proper response with > no Metadata included). In both cases, I am specifying the URI of my > Resource Manager as the Identifier. > > Does anyone know if this operation has yet been fully implemented in > Muse? I would like to be able to retrieve the XML Schema Document, > rather than the entire WSDL document. For the time being, I can filter > through the WSDL document to obtain the data I need, but this is not > very efficient. > > Thank you. > > Jared Zebedee > [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
