Re: [wsrf] Discussion regarding issue 48

From
Steve Graham <>
Date
2004-06-15T20:52:54+00:00
ID
Thread
Re: [wsrf] Discussion regarding issue 48
Interesting.

So, lets say I have the following resource
property definition:

<xs:schema ... targetNamespace="foo"
... xmlns:foo="foo" >

...

  <xs:element name="bar"
type="xs:String" nillable="true"/>

  <xs:element name="RPDocDecl">

    <xs:sequence>

      <xs:element
ref="bar" minOccurs="1" maxOccurs="unbounded"
/>

...

    </xs:sequence>

  </xs:element>

...

</xs:schema>

I have a WS-Resource defined on a portType
that references foo:RPDocDecl as its resource properties document schema,
and this particular WS-Resource has only one element value of "bar"
that is nil. That is, a serialization of the resource property document
could appear as:

  

<foo:RPDocDecl>

  <foo:bar xsi:nil="true"
/>

 ...

</foo:RPDocDecl>

So, if a requestor issued the following
GetResource Properties request:

  <wsrp:GetResourceProperty>

    foo:bar

  </wsrp:GetResourceProperty>

I would expect:

  <wsrp:GetResourcePropertyResponse>

    <foo:bar xsi:nil="true"
/>

  </wsrp:GetResourcePropertyResponse>

Now a couple of other "variants":

There are several values of bar, that
is the resource properties document looks like:

<foo:RPDocDecl>

  <foo:bar xsi:nil="true"
/>

  <foo:bar>someString</foo:bar>

 ...

</foo:RPDocDecl>

I would expect the getResourceProperties
response to look like:

  <wsrp:GetResourcePropertyResponse>

    <foo:bar xsi:nil="true"
/>

    <foo:bar>someString</foo:bar>

  </wsrp:GetResourcePropertyResponse>

and if there are no values for foo:bar,
that is the resource properties document looks like:

<foo:RPDocDecl>

...

</foo:RPDocDecl>

I would expect the getResourceProperties
response to look like:

  <wsrp:GetResourcePropertyResponse>

  </wsrp:GetResourcePropertyResponse>

What aspect of the scenario am I missing
that suggests the invention of some conventional element like "nillablerp"?

sgg

++++++++

Steve Graham

(919)254-0615 (T/L 444)

STSM, On Demand Architecture

Member, IBM Academy of Technology

<Soli Deo Gloria/>

++++++++

Samuel Meder <>

06/15/2004 02:05 PM

Please respond to meder
        

        To:
       "Murray, Bryan P." <>

        cc:
       wsrf-oasis <>,
Jarek Gawor <>

        Subject:
       Re: [wsrf] Discussion regarding issue
48

I've talked to Jarek about issue 48. What we would like to see is a

clarification of what to return when a property is declared nillable and

it is nil. Our suggestion is to return something like 

<nillablerp xsi:nil="true"/>

Other alternatives are to return nothing or to throw a fault. The other

issue that should be clarified is the precedence of

"Note: in the case where the resource property element is defined
with

minOccurs="0" and the resource properties document does not contain
any

value for that resource property, the response MUST be an empty

wsrpw:GetResourcePropertyResponse element."

over whatever behavior we decide on for the nillable case. Our

suggestion is to give the minOccurs="0" rule precedence.

More comments below:

On Thu, 2004-06-10 at 14:31, Murray, Bryan P. wrote:

> The minutes indicate I have an action item to start an email discussion

> to clarify issue 48. This issue was originally raised by Jarek Gawor.

> 

> I am not sure whether the original intent is with reference only to

> properties that are declared in schema as nillable or if it is about
any

> property which can possibly have a null value.

> 

> As an implementer I can comment on properties that can have a null

> value. For instance, in most languages a string can have a non-null

> value, can be empty and non-null, and can have a null value. If the

> property is not declared as nillible in schema and minOccurs >
0, what

> is the correct value to return if the string has a null value? The

> choices in this case are 1) return property with no value, 2) don't

> return the property at all but don't fault, 3) fault. I don't think
we

> can return the property with nil=true. My preference is #1 which is
the

> same if the string has a non-null value that has 0 length.

I think we should return a fault since it is not declared as nillable.

> Another case I can think of that is related to having a null value
is a

> property that is declared with minOccurs=0 and maxOccurs > 1. This
may

> sometimes be implemented as an array. What should be done if the array

> is null, empty, or non-null and non-empty? It seems to me that if
the

> array is null no property elements should be returned just as for
an

> array with no elements, but this is an implementation detail.

> 

It seems to me that this should depend on whether the property is

declared to be nillable or not. My suggestion would be:

      * Nillable

              * if array == null or
empty return <rpelement

                xsi:nil=true>

              * if array is not empty
do the usual

      * Non-nillable

              * if array == null or
empty throw fault

              * if array is not empty
do the usual 

/Sam

> If someone has comments about properties that are declared as nillable

> in the schema or comments about properties having null values please

> reply to the list.

> 

> Bryan

-- 

Sam Meder <>

The Globus Alliance - University of Chicago

630-252-1752