Tim,

The best approach could be to mix the two approaches:

 * let's define a mediatype such as "application/xml+csv" with an
   optional parameter named "separator"
 * add support for this new mediatype in Fleur, my new DOM
   implementation I presented at XML Amsterdam, so each text value
   containing a separator is splitted into an array node with as many
   text nodes as items
 * add support of arrays in XSLTForms input controls: as many HTML
   inputs as items with "+" and "-" buttons for each to add and delete
   items (every XForms input control for single strings will actually
   have a "+" button to allow to generate an array from them)

Would it be better for you to specifically enable/disable the "+" feature for, let's say, attributes, some elements, depending on the namespace, ...?

What do you think?

Alain

Le 20/11/2015 04:26, Tim Thompson a écrit :
Yes, library catalog data is notorious for using punctuation to indicate structure (a legacy of the card catalog days).

Your proposal seems like a great, declarative solution, and I think it would be a valuable extension for XSLTForms. It could also be interesting if the XForms 2.0 CSV2XML mapping could be applied to the text content of individual elements (rather than only instances), so that it could be accessed using XPath.

Best regards,
Tim

--
Tim A. Thompson
Metadata Librarian (Spanish/Portuguese Specialty)
Princeton University Library


On Thu, Nov 19, 2015 at 3:36 PM, Alain Couthures <[email protected] <mailto:[email protected]>> wrote:

    Tim,

    This is a very interesting test case because it shows that some
    elements might contain multiple values separated by ";". It looks
    like CSV contents within elements!

    I don't think fn:tokenize is the right tool for this situation: it
    is designed for returning strings not nodes to be bound to
    controls. It is true that XSLTForms is using faked nodes for
    returning what can be seen as a sequence but it is just a trick
    for an XPath 1.0 engine.

    I have been thinking of a way for splitting the text node which is
    the child of the element into many and, then, it would be possible
    to bind them individually for editing. I am not sure that all DOM
    implementations in browsers will support adjacent text nodes
    without concatenate them. An XPath function should not modify
    nodes so a specific action would be required...

    It should be better, first, to consider that the element value has
    a specific data type, which is a restriction of xsd:string. As for
    RTE, the separator to be recognized can be associated to this data
    type. Then, the input control bound to each element with this data
    type will actually be rendered by XSLTForms with multiple HTML
    inputs, as many as sub-values, and with buttons to add and remove
    inputs. This would be developed as an XForms extension in XSLTForms.

    What do you think?

    Alain


    Le 18/11/2015 23:34, Tim Thompson a écrit :
    Alain,

    Thank you for your reply. Attached is a test case using
    fn:tokenize to create input controls. The purpose is to edit
    library catalog records for audiovisual material and transcribe
    information about production credits.

    Best regards,
    Tim

    --
    Tim A. Thompson
    Metadata Librarian (Spanish/Portuguese Specialty)
    Princeton University Library


    On Wed, Nov 18, 2015 at 3:57 PM, Alain Couthures
    <[email protected]
    <mailto:[email protected]>> wrote:

        Tim,

        Currently, fn:tokenize() is returning faked text nodes. This
        is good enough for xf:output and should also work with
        xf:setvalue.

        It would still be easy to create standalone text nodes owned
        by default instance to do the trick more appropriately for
        complex cases.

        Could you please send me a test case?

        Thanks!

        --Alain


        Le 18/11/2015 20:02, Tim Thompson a écrit :
        Alain,

        Can fn:tokenize be used to update instance data with
        xf:input, or only to display data with xf:output? I have XML
        data with elements that contain semicolon-delimited strings
        that I would like to split across separate input controls,
        but I guess the data can't be updated once it is tokenized?

        Best wishes,
        Tim

        --
        Tim A. Thompson
        Metadata Librarian (Spanish/Portuguese Specialty)
        Princeton University Library


        
------------------------------------------------------------------------------


        _______________________________________________
        Xsltforms-support mailing list
        [email protected]
        <mailto:[email protected]>
        https://lists.sourceforge.net/lists/listinfo/xsltforms-support





------------------------------------------------------------------------------
_______________________________________________
Xsltforms-support mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xsltforms-support

Reply via email to