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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrp message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: [wsrp] RE: [wsia] Proposal for simple properties mechanism based onXFor ms


A small addendum to my proposal of yesterday. Re-reading the XForms spec, it seems that the <instance> can have multiple elements inside it, so that we can remove the redundant <values> tag everywhere. Thus, the example will look a lot cleaner:
 
1. Description of an entity with two properties - TitleText (string) and ShowHelp (boolean):
<xf:model>
  <xf:instance>
       <TitleText />
       <ShowHelp />
  </xf:instance>
  <xf:bind nodeset="ShowHelp" type="xsd:boolean" />
  <!-- default type is ##any -->
</xf:model>
 
2. Querying of the value of TitleText:
<xf:model>
  <xf:instance>
       <TitleText />
  </xf:instance>
</xf:model>
 
3. Response to the query:
<xf:model>
  <xf:instance>
       <TitleText>This is the title of the text</TitleText>
  </xf:instance>
</xf:model>
 
Gil
P.S. Anybody with insider information into XForms? The Working Draft is very confusing and I'm still not sure whether multiple elements are possible.
-----Original Message-----
From: Gil Tayar [mailto:Gil.Tayar@webcollage.com]
Sent: Sun, August 25, 2002 15:30
To: wsrp@lists.oasis-open.org; wsia@lists.oasis-open.org
Subject: [wsia] Proposal for simple properties mechanism based on XForms

Objectives:
1. Separate Property definition (meta-data) from property values from property querying.
2. Do it simply.
 
General model (as defined by XForms 1.0 in http://www.w3.org/TR/xforms/)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<xf:model>
  <xf:instance>
    <values>
        <p1>value1</p1>
        <p2>value2</p2>
        ...
    </values>
  </xf:instance>
  <xf:bind nodeset="p1" type="xsd:string" /> <!-- defines that 'p1' is of type string -->
  <xf:bind nodeset="..." type="...:foobar" /> <!-- defines that 'p1' is of type foobar, which is defined in the <schema> below -->
  <xsd:schema>
    ...
    <xsd:simpleType id="foobar">...</xsd:simpleType>
  </xsd:schema>
</model> 
 
This defines property values (<xf:instance>) and meta-data (<xf:bind>) with supporting type definitions.
 
To specify only meta-data, specify only empty placeholders for instance data (e.g. without values), and optionally specify bind tags (and supporting type definitions) for defining types. This is conformant to the view of XForms, where the only place to define validation constraints is in the <bind> tag, which specifies for nodes in the <instance> what their schema is.
To specify only values, do not specify bind tags.
To specify querying of values, specify only empty placeholders for instance data (e.g. without values). This means that to retrieve all values of the instance data, just pass back what was received in the meta-data description.
 
Constraints for simplicity:
~~~~~~~~~~~~~~~~~~~~~
1. All instances are of the form:
  <values>
   <property-name>property-value</property-name>
   ...
  </values>
  This means that the root tag contains only child tags with no attributes. The sub-values of these tags are unconstrained.
  The child tag is a property whose name is the property's name and it's content is the property's value.
 
2. The types for the property values must be one of the pre-defined types defined in XML Schema. The default if not defined in a <bind> is "##any".
3. The bind tag must reference (using its "nodeset" attribute) only propeties, i.e. the child tags (e.g. p1...).
 
Example:
~~~~~~~
1. Description of an entity with two properties - TitleText (string) and ShowHelp (boolean):
<xf:model>
  <xf:instance>
    <values>
       <TitleText />
       <ShowHelp />
    </values>
  </xf:instance>
  <xf:bind nodeset="ShowHelp" type="xsd:boolean" />
  <!-- default type is ##any -->
</xf:model>
 
2. Querying of the value of TitleText:
<xf:model>
  <xf:instance>
    <values>
       <TitleText />
    </values>
  </xf:instance>
</xf:model>
 
3. Response to the query:
<xf:model>
  <xf:instance>
    <values>
       <TitleText>This is the title of the text</TitleText>
    </values>
  </xf:instance>
</xf:model>
 
Extensions allowed by implementors
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Implement full "bind" functionality (e.g. define "required", "constraints", "min"... on each part of instance data). Clients not aware of these can ignore them.
2. The types for the property values can be any defined in the XML Schema. Clients not aware of these can ignore them and assume "xsd:##any".
3. Remove constraints on the bind tag.
4. Remove constraint on structure of the values.
 
Comments, anybody?
Gil Tayar
WebCollage
 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC