- From: Jim Davis <jdavis@parc.xerox.com>
- Date: Fri, 24 Jul 1998 19:40:55 PDT
- To: www-webdav-dasl@w3.org
I like Alan's concept of making the QSD for simplesearch be property centric rather than 'section' centric. I started writing it up in Microsoft Word and I sent it to Saveen to add to the protocol draft. The writeup (which I enclose below) has a DTD for the property descriptions, but does not have a DTD for operator descriptions, not because I am against that but just because I ran out of time to write it up. Sorry. We can also delete section 11 (data typing) because there's no place else datatypes get used except in QSD. ---------- 1.1. Query Schema for DAV:simplesearch The DAV:simplesearch grammar defines a search criteria that is a Boolean-valued expression, and allows for an arbitrary set of properties to be includes in the result record. The result set may be sorted on a set of property values. Accordingly the DTD for schema discovery for this grammar allows the server to express: ? the set of properties that may be searched, with associated data types ? the set of properties that be selected in the result record ? the set of properties that may be sorted 1.1.1. DTD for simplesearch query schema discovery <!ELEMENT simplesearchschema (properties, operators)> <!ELEMENT properties (propdesc*)> <!ELEMENT propdesc (prop, ANY) > <!ELEMENT operators to be provided > The DAV:properties element holds a list of descriptions of properties. The DAV:operators element describes the operators that may be used in a DAV:where element. 1.1.2. DAV:propdesc element Each instance of a DAV:propdesc element describes the property or properties in the DAV:prop element it contains. All subsequent elements are descriptions that apply to those properties. All descriptions are optional and may appear in any order. Servers SHOULD support all the descriptions defined here, and MAY define others. DASL defines four descriptions. The first, DAV:datatype, provides a hint about the type of the property value, and may be useful to a user interface prompting for a value. The remaing three (DAV:searchable, DAV:selectable, and DAV:sortable identify portions of the query (DAV:where, DAV:select, and DAV:sortby, respectively) If a property has a description for a section, then the server MUST allow the property to be used in that section. These descriptions are optional. If a property does not have such a description, or is not described at all, then the server MAY still allow the property to be used in the corresponding section. 1.1.3. The DAV:datatype property description The DAV:datatype element contains a single XML element that provides a hint about the domain of the property, which may be useful to a user interface prompting for a value to be used in a query. The namespace used for expressing a DASL defined datatype is "urn:uuid:C2F41010-65B3-11d1-A29F-00AA00C14882/". <!ELEMENT datatype (ANY) > DASL defines the following datatype elements: name contents example string int 12,-259 float .314159265358979E+1 dateTime.iso8601tz an ISO 8601 date 1994-11-05T08:15:5Z 1.1.4. The DAV:searchable property description If this element is present, then the server MUST allow this property to appear within a DAV:where element if the operator it is used with allows it. Allowing a search does not mean that the property is guaranteed to be defined on every resource in the scope, it only indicates the servers willingness to check. <!ELEMENT searchable EMPTY > 1.1.5. The DAV:selectable property description This element indicates that the property may appear in the DAV:select element. <!ELEMENT selectable EMPTY > 1.1.6. The DAV:sortable property description This element indicates that the property may appear in the DAV:sortby element <!ELEMENT sortable EMPTY > 1.1.7. Example of Query Schema for DAV:simplesearch <?xml:namespace ns="DAV:" prefix="D"> <?xml:namespace ns="urn:uuid:C2F41010-65B3-11d1-A29F-00AA00C14882/" prefix="t"?> <?xml:namespace ns="http://jennicam.org" prefix="J"> <D:simplesearchschema> <D:properties> <D:propdesc> <D:prop><D:getcontentlength/></D:prop> <D:datatype><t:int></D:datatype> <D:searchable/><D:selectable/><D:sortable/> </D:propdesc> <D:propdesc> <D:prop><D:getcontenttype/><D:displayname></D:prop> <D:searchable/><D:selectable/> <D:sortable/> </D:propdesc> <D:propdesc> <D:prop><J:fstop/></D:prop> <D:selectable/> </D:propdesc> <D:properties> <D:operators> ..</D:operators> </D:simplesearchschema> This response lists four properties. All are selectable, and the first three may be searched. The datatype is provided for the first, the others default to string. All but the last may be used in a sort.
Received on Friday, 24 July 1998 22:42:33 UTC