- From: Phil Ritchie <philr@vistatec.ie>
- Date: Mon, 16 Jul 2012 10:07:41 +0100
- To: Felix Sasaki <fsasaki@w3.org>
- Cc: public-multilingualweb-lt@w3.org, Yves Savourel <ysavourel@enlaso.com>
- Message-ID: <OF749CA392.2B6B961C-ON80257A3D.002FE9E0-80257A3D.003224FD@vistatec.ie>
I have successfully used Yves' (b) mechanism with XSLT 2.0 and XLIFF 1.2 to transform proprietary segment related elements in XLIFF to HTML 5 with data. In the examples below I'm struggling to understand all of the indirection. Phil. From: Felix Sasaki <fsasaki@w3.org> To: Yves Savourel <ysavourel@enlaso.com>, Cc: public-multilingualweb-lt@w3.org Date: 14/07/2012 19:32 Subject: Re: [ACTION-169] Reference Mechanism Hi Yves, I implemented the its:qaErrorRule element, and was able to resolve the reference to info="Should be USB key" My "artificial" output looks like this: <node path="/doc/body[1]/xlf:unit[1]/xlf:segment[1]/xlf:target[1]/xlf:mrk[1]" outputType="new-value-global"> <output xmlns:xlf="urn:oasis:names:tc:entity:xmlns:xml:catalog" xmlns:itsqa="http://example.com/itsqa"> <errorInfoRefPointer info="Should be USB key"/> </output></node> That is, I associate info="Should be USB key" with the "mrk" element, which I think is what you want. The rules file for doing this looks like this: <its:rules version="2.0"> <its:qaErrorRule selector="//xlf:mrk[@type='itsqa']" errorInfoRefPointer="for $ref in @ref return //itsqa:error[@id=substring-after($ref,'#')]/@info" xmlns:xlf="urn:oasis:names:tc:entity:xmlns:xml:catalog"/> </its:rules> You see that solving the problem has a price: I am using XPath 2.0. This gives me the ability to write the following relative path expression: for $ref in @ref return //itsqa:error[@id=substring-after($ref,'#')]/@info This means that I am binding the "ref" attribute to a variable. with the part //itsqa:error[@id=substring-after($ref,'#')]/@info I am then getting the "info" attribute that I need. So if we go this route implementations that want to do the level of indirection need to use XPath 2.0. There might be a solution with XPath 1.0, maybe Jirka has an idea? Otherwise, I would prefer to use XPath 2.0 instead of introducing a new mechanism in global rules for resolving the reference. Best, Felix 2012/7/13 Yves Savourel <ysavourel@enlaso.com> Hi everyone, While discussing the qa-error data category we ran into a use case where using inline attributes is not practical and where, instead, some reference mechanism is needed. This issue may not be specific to the qa-error data category. The current proposal for qa-error calls for using one or more local attributes that can be applied directly to the content of the element where they are. For example: <p>Insert the <span its-error="yes" its-error-info="Should be USB key" its-error-xyz="data">Pen Drive</span> in the USB port</p> A example of a format where this is not practical is XLIFF 2.0: In such file the element used to annotate the content (<mrk>) does not allow non-XLIFF attributes. Instead it offers two options: a) to use user-defined types along with a single string value: <target>Insert the <mrk id="m1" type="mytype" value="myvalue">Pen Drive</mrk> in the USB port</target> Or b) to use a user-defined type along with a pointer to an element residing in the unit where the content is located. That element can be user-defined. For example: <unit id="1"> <segment> <source>Insérez la clé USB dans le port USB.</source> <target>Insert the <mrk id="m1" type="itsqa" ref="#a1">Pen Drive</mrk> in the USB port</target> </segment> <itsqa:error id="a1" info="Should be USB key" xyz="data"/> </unit> This example has the ITS qa-error data category implemented. But a tool that is just ITS-aware cannot find the corresponding info for it. The solution is similar to the data categories such as Localization Note ( http://www.w3.org/TR/its/#locNote-implementation) or Terminology ( http://www.w3.org/TR/its/#terminology-implementation), where we define global rules that map the data category features to the non-ITS markup. The possible extra catch here is that, as far as I can tell--and I really hope a URI expert will contradict me here--none of the pointing mechanisms we have in ITS 1.0 can handle the reference used in the XLIFF case. For example, with something like: <its:qaErrorRule selector="//xlf:mrk[@type='itsqa']" errorInfoRefPointer="@ref"/> errorinforefPointer would contains a relative XPath expression pointing to a node that holds the URI referring to the error information. But itsqa:error does not contain directly that information, itsqa:error@info does. So, the question is: is there a pointing mechanism that we could use to map the different data of qa-error to either attributes or elements that are grouped under a single element? Cheers, -ys -- Felix Sasaki DFKI / W3C Fellow ************************************************************ This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the sender immediately by e-mail. www.vistatec.com ************************************************************
Received on Monday, 16 July 2012 09:08:13 UTC