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: Re: [tamie-comment] Schema for CSD01 and a few comments


[Sorry that last point should of course be point 5, not point 4]

A minor point (6.) is that some of the examples in the ucpackage
have line breaks in their XPath expressions. These are not strictly
allowed when the datatype is xs:normalizedString (as in both spec
and schema for most content types).

Attached is a (zipped) schema, updated for the changes I've
mentioned, if the corresponding changes are made in the spec.

Best regards

----
Stephen D Green



On 18 April 2011 07:36, Stephen D Green <stephengreenubl@gmail.com> wrote:
> 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
>

xtemp.zip



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