Hi Geert, Exactly the same than with text/xml, unfortunately.
-- Florent Georges http://fgeorges.org/ http://h2oconsulting.be/ On 26 November 2015 at 21:42, Geert Josten wrote: > What happens if you mark it with Content-Type: application/xml? > > Cheers, > Geert > > On 11/26/15, 9:08 PM, "[email protected] on behalf > of Florent Georges" <[email protected] on behalf of > [email protected]> wrote: > >>Hi, >> >>I have a problem with a form, that I could narrow down to the >>following. It is a POST of type multipart/form data, sending one file >>part: >> >> ------------------------------ed0cb8f98262 >> Content-Disposition: form-data; name="file"; filename="example.xml" >> Content-Type: text/xml >> >> <hello>World!</hello> >> >> ------------------------------ed0cb8f98262-- >> >>When I use `xdmp:get-request-field('file')` to get te value, it is >>returned as a document node containing one text node. If I change >>`text/plain` to `application/octet-stream`, the value is a binary >>node. >> >>I would have expected a document node with an element `hello`. The >>following query reproduces the problem (accessing and outputing a few >>key values, to double-check my environment): >> >> xquery version "1.0-ml"; >> >> import module namespace admin = "http://marklogic.com/xdmp/admin" >> at "/MarkLogic/admin.xqy"; >> >> declare namespace xdmp = "http://marklogic.com/xdmp"; >> declare namespace mt = "http://marklogic.com/xdmp/mimetypes"; >> >> declare function local:type-from-filename($name as xs:string) as >>xs:string* >> { >> let $ext := fn:tokenize($name, '\.')[fn:last()] >> let $types := admin:mimetypes-get(admin:get-configuration()) >> return >> $types[mt:extensions/data() = $ext]/mt:name >> }; >> >> <fields version="{ xdmp:version() }"> >> { >> for $name in xdmp:get-request-field-names() >> let $value := xdmp:get-request-field($name) >> let $filename := xdmp:get-request-field-filename($name) >> return >> <field> >> <name>{ $name }</name> >> <is-text>{ $value/node() instance of text() }</is-text> >> <is-binary>{ $value/node() instance of binary() }</is-binary> >> <filename type="{ local:type-from-filename($filename) >>}">{ $filename }</filename> >> <content-type>{ >>xdmp:get-request-field-content-type($name) }</content-type> >> { >> if ( $value instance of binary() ) then >> <value>...binary...</value> >> else >> <value>{ $value }</value> >> } >> </field> >> } >> </fields> >> >>When called with the following CURL command (just put the above query >>on a HTTP app server, and adapt the user, password, and endpoint >>below): >> >> curl -u user:pwd --digest \ >> -F "file=@.../example.xml;type=text/xml" \ >> http://localhost:8010/test/tools/fields >> >>it returns the following: >> >> <fields version="8.0-4"> >> <field> >> <name>file</name> >> <is-text>true</is-text> >> <is-binary>false</is-binary> >> <filename type="application/xml">example.xml</filename> >> <content-type>text/xml</content-type> >> <value><hello>World!</hello> </value> >> </field> >> </fields> >> >> >>When called with the following CURL command (note the different >>type=): >> >> curl -u user:pwd --digest \ >> -F "file=@.../example.xml;type=application/octet-stream" \ >> http://localhost:8010/test/tools/fields >> >>it returns the following: >> >> <fields version="8.0-4"> >> <field> >> <name>file</name> >> <is-text>false</is-text> >> <is-binary>false</is-binary> >> <filename type="application/xml">example.xml</filename> >> <content-type>application/octet-stream</content-type> >> <value>...binary...</value> >> </field> >> </fields> >> >>Did I miss something? Shouldn't I get an XML document node? >> >>Posted on SO as well, at http://stackoverflow.com/questions/33946268/. >> >>Regards, >> >>-- >>Florent Georges >>http://fgeorges.org/ >>http://h2oconsulting.be/ >>_______________________________________________ >>General mailing list >>[email protected] >>Manage your subscription at: >>http://developer.marklogic.com/mailman/listinfo/general > > _______________________________________________ > General mailing list > [email protected] > Manage your subscription at: > http://developer.marklogic.com/mailman/listinfo/general _______________________________________________ General mailing list [email protected] Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
