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

 


Help: OASIS Mailing Lists Help | MarkMail Help

tamie-comment message

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


Subject: Fwd: [tamie-comment] Schema for CSD01 and a few comments


Jacques, TaMIE TC

A few points which I think will still need to be addressed in both
the spec and the schema:

1. If mask is allowed anywhere in scriplets then I think you will
need to add mask to xtempstatement (in both spec and schema)

xtempstatement =
 (
       element xtemp:var { var_body } |
       element xtemp:catch { catch_body } |
       element xtemp:decide { decide_body } |
       element xtemp:eval { eval_body } |
       element xtemp:exit { exit_body } |
       element xtemp:if { if_body } |
       element xtemp:loop { loop_body } |
       element xtemp:message { message_body } |
       element xtemp:post { post_body } |
       element xtemp:wait { wait_body } |
       element xtemp:start { start_body } |
       element xtemp:call-adapter { calladapter_body }
 )

change to

xtempstatement =
 (
       element xtemp:mask{ mask_body } |
       element xtemp:var { var_body } |
       element xtemp:catch { catch_body } |
       element xtemp:decide { decide_body } |
       element xtemp:eval { eval_body } |
       element xtemp:exit { exit_body } |
       element xtemp:if { if_body } |
       element xtemp:loop { loop_body } |
       element xtemp:message { message_body } |
       element xtemp:post { post_body } |
       element xtemp:wait { wait_body } |
       element xtemp:start { start_body } |
       element xtemp:call-adapter { calladapter_body }
 )


and in the schema

   <xs:group name="xtempstatement_group">
       <xs:choice>
           <xs:element ref="call-adapter"/>
           <xs:element ref="catch"/>
           <xs:element ref="decide"/>
           <xs:element ref="eval"/>
           <xs:element ref="exit"/>
           <xs:element ref="if"/>
           <xs:element ref="loop"/>
           <xs:element ref="message"/>
           <xs:element ref="post"/>
           <xs:element ref="start"/>
           <xs:element ref="var"/>
           <xs:element ref="wait"/>
       </xs:choice>
   </xs:group>

change to

   <xs:group name="xtempstatement_group">
       <xs:choice>
           <xs:element ref="mask"/>
           <xs:element ref="call-adapter"/>
           <xs:element ref="catch"/>
           <xs:element ref="decide"/>
           <xs:element ref="eval"/>
           <xs:element ref="exit"/>
           <xs:element ref="if"/>
           <xs:element ref="loop"/>
           <xs:element ref="message"/>
           <xs:element ref="post"/>
           <xs:element ref="start"/>
           <xs:element ref="var"/>
           <xs:element ref="wait"/>
       </xs:choice>
   </xs:group>

I already added the mask element to the schema but it wasn't
referenced from anywhere

If functions need to include mask then it needs adding here

fnxtemptatement =
 (
       element xtemp:var { infn_var_body } |
       element xtemp:decide { infn _decide_body } |
       element xtemp:eval { infn_eval_body } |
       element xtemp:exit { infn_exit_body } |
       element xtemp:if { infn_if_body } |
       element xtemp:message { message_body } |
 )

change to

fnxtemptatement =
 (
       element xtemp:mask { mask_body } |
       element xtemp:var { infn_var_body } |
       element xtemp:decide { infn _decide_body } |
       element xtemp:eval { infn_eval_body } |
       element xtemp:exit { infn_exit_body } |
       element xtemp:if { infn_if_body } |
       element xtemp:message { message_body } |
 )

and
in schema

   <xs:group name="xtfuncstatement_group">
       <xs:choice>
           <xs:element name="var" type="var_function_type"/>
           <xs:element name="decide" type="decide_function_type"/>
           <xs:element name="eval" type="eval_function_type"/>
           <xs:element name="exit" type="exit_function_type"/>
           <xs:element name="if" type="if_function_type"/>
           <xs:element ref="message"/>
       </xs:choice>
   </xs:group>


change to

   <xs:group name="xtfuncstatement_group">
       <xs:choice>
           <xs:element ref="mask"/>
           <xs:element name="var" type="var_function_type"/>
           <xs:element name="decide" type="decide_function_type"/>
           <xs:element name="eval" type="eval_function_type"/>
           <xs:element name="exit" type="exit_function_type"/>
           <xs:element name="if" type="if_function_type"/>
           <xs:element ref="message"/>
       </xs:choice>
   </xs:group>



2. if the message and exit allow mixed content then I think the
spec also needs to be changed to reflect this by adding 'text'
to var, exit and message

( like with-param, etc which already have 'text' at the end

withparam_body =
       attribute name {xsd:normalizedString} ,
       attribute expr {xsd:normalizedString} ? ,
       text
)

so in message:

element xtemp:message {
       ( eval_body | xeffectitem ) *
       }

change to

element xtemp:message {
       ( eval_body | xeffectitem ) *,
       text
       }

likewise exit:

element xtemp:exit { exit_body }

exit_body =
       attribute message {xsd:normalizedString} ? ,
       attribute result {xsd:normalizedString} ?
       ( xeffectitem ) *


change to

element xtemp:exit { exit_body }

exit_body =
       attribute message {xsd:normalizedString} ? ,
       attribute result {xsd:normalizedString} ?
       ( xeffectitem ) *,
       text

and with var

element xtemp:var { var_body }

var_body =
       attribute name {NCName} ,
       attribute type {NCName} ?
       attribute expr {normalizedString} ?
       ( xtempstatement | xeffectitem ) *

change to

element xtemp:var { var_body }

var_body =
       attribute name {NCName} ,
       attribute type {NCName} ?
       attribute expr {normalizedString} ?
       ( xtempstatement | xeffectitem ) *,
element xtemp:var { var_body }

var_body =
       attribute name {NCName} ,
       attribute type {NCName} ?
       attribute expr {normalizedString} ?
       ( xtempstatement | xeffectitem ) *,
       text


3. The ucpackage still has the old schemaLocation,
 xsi:schemaLocation="http://docs.oasis-open.org/tamie/xtemp/200909
http://www.oasis-open.org/committees/download.php/34985/xtemp-0-6-3.xsd";
in many of the xtemp examples instead of just
http://docs.oasis-open.org/tamie/xtemp/200909 xtemp.xsd

4. An error of mine in the schema I sent before, sorry I missed it till now:


 <xs:complexType name="withparam_type" mixed="true">
        <xs:group ref="xeffectitem_group"/>
        <xs:attribute name="expr" type="xs:normalizedString" use="optional"/>
        <xs:attribute name="name" type="xs:normalizedString" use="required"/>
    </xs:complexType>


needs to be changed to


 <xs:complexType name="withparam_type" mixed="true">
        <xs:attribute name="expr" type="xs:normalizedString" use="optional"/>
        <xs:attribute name="name" type="xs:normalizedString" use="required"/>
    </xs:complexType>

This puts it in line with the spec and is necessary for the ucpackage
XSLT to work when run with a schema/type-aware XSLT processor



4. Also the XSLT needs one change:

not(@vptsync = 'false')

should be

not(@vptsync = false)

because @vptsync is now a Boolean so 'false' (string) also
needs to be changed to false without the quotes (Boolean)
or you get a type mismatch with Saxon EE (which is schema
aware and therefor type and datatype aware).


Best regards

Steve

----
Stephen D Green


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