Re: [Xsltforms-support] Namespace issue (not quite newbie)...
Brought to you by:
alain-couthures
From: Habs <ge...@us...> - 2021-12-06 09:49:54
|
>> On Sun, 5 Dec 2021, Ralph Corrigan wrote: >> >> Hi all, You were kind enough to help me earlier in the year when I was >> looking >> at xsltforms for the first time, and things have moved a long way from >> there. But I'm hitting a problem going back through the documents and >> forms trying to make them conformant with TEI (not my choice, because >> we're not actually encoding text, but anyway). These problems arose >> early on, so I removed it and ran everything through the empty namespace >> (xmlns=""). >> So target (e.g.) is: >> >> <TEI xmlns=""> .................... >> <listPerson/> >> </TEU> >> >> And the instance that populates it is: >> >> <xf:instance id"XX"> >> <items xmlns=""> >> <listPerson/> >> </items> >> </xf:instance>. >> >> On the form itself, the input fields all use the xf: prefix, so >> <xf:input ref="instance('XX')/listPerson/person"> etc. An xquery POST >> then inserts the instance data (using request:get-data()/*) into the >> original xml document. >> >> This all works absolutely fine and does everything I would expect it to. >> >> However, if I change the namespace in the instance to <items >> xmlns="http://www.tei-c.org/ns/1.0"> [1] the xf:input fields no longer >> render. Try as I might, wherever I put the namespace declaration on the >> form (and even if I add it to the xsltforms.xsl) the fields no longer >> render. I have noticed that there is no reference to the TEI namespace >> in the finally generated header, which I'#m guessing could be the >> problem, but I've no idea how to get it there: >> >> <html xmlns:xalan="http://xml.apache.org/xalan" >> xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >> xmlns:dcterms="http://purl.org/dc/terms/" >> xmlns:ajx="http://www.ajaxforms.net/2006/ajx" >> xmlns:txs="http://www.agencexml.com/txs" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><!--HTML elements >> generated by XSLTForms 1.5.5 (661) - Copyright (C) 2021 <agenceXML> - >> Alain Couthures - http://www.agencexml.com-->. >> >> I thought I'd be able to work around it by calling a src instance from >> the main TEI namespace xml document, but this runs into the same >> problem. >> >> Any ideas about how I get round this (or do it properly in the first >> place)! If not sorted yet, please will you by reply, attach the smallest >> complete xform and any instance(s) that are not working as you'd expect. >> >> I'm not a 'namespace' guru, but namespaces I find can be quite testing. >> >> Thank you >> Habs >> >> --- Sent using Alpine/Pine, probably the best MUA --- >> >> My Tox Messaging Id: >> 9F10AC64260ADEBAEA017ACB71B7CD2E962596FC4293025C0F79D77FFEB4CE5C7B0BED41D925 >> Get a client here: https://tox.chat/clients.html > > On Sun, 5 Dec 2021, Ralph Corrigan wrote: > >> Thanks for getting back to me, Habs: >> >> So a short illustrative example attached. This form works fine in >> exist-db, and I've declared tei in the html header (although clearly >> there is nothing prefixed with 'tei'), all good. But as soon as I try >> and apply the tei namespace to the listPerson instance (I've tried >> adding it everywhere), the form fields no longer render (and don't >> appear to be loaded at all). I've tried adding the tei prefix to the >> instance, the form fields and both at the same time, but still not got >> anywhere yet... >> >> Any suggestions gratefully received! >> >> Cheers >> Ralph > > Please see attached. > > A little tip I learned a long time ago for xhtml forms and namespaces, > was to use two additional ones ... I cannot for the life in me, > remember why ! If it's obvious to you let me know please. > > I think it has something to do with clashes between [default] xform > namespaces and other namespaces in the instance(s). > > I've edited your example and it is sorted now on my setup. Note the > xmlns:my and my:dummy additions, the xmlns in the instance and the > changes using my: in the form. > > Hopefully that answers your need. > > Regards > Habs > > --- Sent using Alpine/Pine, probably the best MUA --- > > My Tox Messaging Id: > 9F10AC64260ADEBAEA017ACB71B7CD2E962596FC4293025C0F79D77FFEB4CE5C7B0BED41D925 > Get a client here: https://tox.chat/clients.html On Sun, 5 Dec 2021, Ralph Corrigan wrote: > Thanks so much, Habs! Slightly different behaviour on my set up to > yours, in that I had to prefix each element in the Xpath (so > ref="my:person/my:persName/my:forename") but that's doable. You're > absolutely right about the dummy namespace: I can't think of any reason > why that would be a useful feature to introduce. > > Anyway, problem solved - onto the next one. > > Thanks again > > Ralph > > On 05/12/2021 19:22, Habs wrote: > Good. Sorry, I missed out the requirement for each part of the xpath. That is indeed required when using namespace prefix. I am not sure (I don't think it is) this is an XSLTForms issue, or just one generally with the XForms standards and the way namespaces work. Someone else with more knowledge may be able to explain why this solution works. Regards and best wishes Habs --- Sent using Alpine/Pine, probably the best MUA --- My Tox Messaging Id: 9F10AC64260ADEBAEA017ACB71B7CD2E962596FC4293025C0F79D77FFEB4CE5C7B0BED41D925 Get a client here: https://tox.chat/clients.html |