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]

Reply via email to