OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] XPath/XQuery - Typed Value Determination

[ Lists Home | Date Index | Thread Index ]



On Fri, 21 Oct 2005, Alan Gutierrez wrote:

> * Vladimir Gapeyev <vgapeyev@seas.upenn.edu> [2005-10-20 21:54]:
>>
>>
>> On Thu, 20 Oct 2005, Alan Gutierrez wrote:
>>
>>>   I'm confused by the wording of...
>>>
>>>   http://www.w3.org/TR/xpath-datamodel/#TypedValueDetermination
>>>
>>>   ...where it discusses the value value determination for lists.
>>>
>>>   "For each of these lexical forms, the type of the corresponding
>>>   item is found in {item type definition}."
>>>
>>>   I can't figure out if the {item type definition} is attached to
>>>   the list as a property, or an index property, or if it attached
>>>   to the item within the list. The mention of recursion implies
>>>   the latter.
>>
>> I think one would need a larger quote to understand the question...:
>
>    Yes. But, I didn't know what to quote, because I didn't
>    understand the question myself. :)
>
>> Brief answer: {item type definition} is a property of T, the
>> schema's list _type_ that validated the value in question.  It is
>> not a property the list _value_.
>>
>> One could arrive to this understanding after meditating over WXS Part 2,
>> 4.1.1  http://www.w3.org/TR/xmlschema-2/#rf-defn
>
>    Which means that a list defined in this section is a list of
>    items that are of the same type, right?

No, if {item type definition} is a union type!

I guess, one needs an example, but I wouldn't try to reproduce WXS syntax, 
so please be forgiving for that!

Suppose you have successfully validated the element

   <a>2 foo 3.14</a>

against the schema

   element a of type T1
   simple type T1 = list of T2
   simple type T2 = union of {xs:integer, xs:decimal, xs:string}

In PSVI, the contents of <a> are typed as T1.

But according to the above quoted algorithm from XPath / XQuery Data 
Model, the typed value corresponding to the contents of <a> is the 
following sequence of annotated values:

     2 of type xs:integer, "foo" of type xs:string, 3.14 of type xs:decimal

Note: T2 in this example is the {item type definition} menttioned in the 
algorithm.

As I understand this, the algorithm just reconstructs "the basic 
reasons" why the PSVI has T1 as the annotation on <a>'s contents.
One reason the algorithm is needed at all, because the names of union 
types hide these "basic reasons".

Hopefully this hepls, and I did not mess up too much!

Vladimir




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS