Upon submission of the form...

<form action="test.xqy" method="get">
 <input type="hidden" name="x" value="one:two" />
 <input type="submit" value="Submit" />
</form>

...the url in the browser address bar becomes...

http://host.com:8008/test.xqy?x=one%3Atwo

That's correct, because %3A is the URL encoded value of a colon. The browser is URL encoding the form value for you.

If I type http://host.com:8008/test.xqy?x=one:two directly into the address bar, everything works as expected.

Technically you should be using %3A. The browser is forgiving you your transgression and internally sending %3A to the server while letting you see the colon. A less forgiving browser would error out saying you had entered a malformed URL.

What part of MarkLogic is causing this transformation into URL code (http://www.dualunit.ch/en/tools/cp1252-characters/), and can it be avoided?

This all happens external to MarkLogic Server. MarkLogic is receiving the URL from the browser with the %3A URL encoding in both cases. It's decoding it to a colon for you when you call xdmp:get-request- field().

(It's ugly.  I'll admit I'm just being vain, though.)

Yes, it's ugly. But it's the way of the web. :) See RFC 1738 for details.

-jh-

_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general

Reply via email to