[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 >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]