Hi Santhosh,

I am not a java expert, but I think you have to set the contentCreateOptions to 
tell the insertContent method that you are inserting binary content.  I think 
you need to write java code to actually create the binary content.

Binary content is really intended for actual binary objects, so I am not sure 
why you would want to convert text to binary.

-Danny



From: [email protected] 
[mailto:[email protected]] On Behalf Of Santhosh Raj
Sent: Tuesday, September 08, 2009 10:53 PM
To: General Mark Logic Developer Discussion
Subject: RE: [MarkLogic Dev General] How to insert binary or text documentusing 
xdmp:document-insert() function - reg.,


Hi Geert & Danny,

        Thanks for the information you gave. It is very usefull.,

Two more question for You.

1)  How do the  insertContent()  function provided by xcc insert binary data 
(.doc,.jpg and etc.,).
        Does it convert each character to hexbinary and convert to binary as 
you said. or any other way?

Content content = ContentFactory.newContent(documentURI, inputStream, 
contentCreateOptions);
                        session.insertContent(content);

2) converting each character to its hexadecimal representation - Does't it 
affect the performance of the system.

Thanks & Regards,
Santhosh Rajasekaran


From:

Danny Sokolsky <[email protected]>

To:

General Mark Logic Developer Discussion <[email protected]>

Date:

09/08/2009 10:04 PM

Subject:

RE: [MarkLogic Dev General] How to insert binary or text        documentusing 
xdmp:document-insert() function - reg.,

Sent by:

[email protected]


________________________________



And to answer your previous question about documentation of these constructors, 
Santhosh, the MarkLogic Server XQuery Reference Guide 
(http://developer.marklogic.com/pubs/4.1/books/xquery.pdf) mentions the binary 
constructor in the "MarkLogic Server Enhanced XQuery Language" chapter.  The 
XQuery standard constructors are described in the "XQuery Language" chapter and 
in the W3C XQuery recommendation 
(http://www.w3.org/TR/xquery/#id-computedConstructors).

-Danny

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Geert Josten
Sent: Tuesday, September 08, 2009 8:31 AM
To: General Mark Logic Developer Discussion
Subject: RE: [MarkLogic Dev General] How to insert binary or text documentusing 
xdmp:document-insert() function - reg.,

Hi Santhosh,

The "deadbeef" works because it is a string that can be casted to xs:hexBinary, 
in other words it is a string containing only digits or characters a-f. 
Converting plain text to binary requires converting each character to its 
hexadecimal representation. You can do that as follows:

binary { string-join(xdmp:integer-to-hex(string-to-codepoints("Testing binary 
Constructor")), "") }

But if you are really storing plain text, you could store that as a text node 
just as well.. ;-)

Kind regards,
Geert

>


Drs. G.P.H. Josten
Consultant


http://www.daidalos.nl/
Daidalos BV
Source of Innovation
Hoekeindsehof 1-4
2665 JZ Bleiswijk
Tel.: +31 (0) 10 850 1200
Fax: +31 (0) 10 850 1199
http://www.daidalos.nl/
KvK 27164984
De informatie - verzonden in of met dit emailbericht - is afkomstig van 
Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit 
bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit 
bericht kunnen geen rechten worden ontleend.


> From: [email protected]
> [mailto:[email protected]] On Behalf Of
> Santhosh Raj
> Sent: dinsdag 8 september 2009 16:53
> To: General Mark Logic Developer Discussion
> Subject: RE: [MarkLogic Dev General] How to insert binary or
> text document using xdmp:document-insert() function - reg.,
>
>
> Hi Danny,
>
>         The binary constructor which you provided is working
> fine. But when i change the content  "deadbeef" with some
> other value, It is giving Invalid Cast error.
>
> Eg: If I use
>
> xquery version "1.0-ml";
> try {
> xdmp:document-insert("abc.doc", binary { "Testing binary
> Constructor" } ) } catch ($e) {
>   $e
> }
>
> Error:
>         <error:code>XDMP-CAST</error:code>
>   <error:name>err:FORG0001</error:name>
>   <error:xquery-version>1.0-ml</error:xquery-version>
>   <error:message>Invalid cast</error:message>
>   <error:format-string>XDMP-CAST: (err:FORG0001) binary {
> "Testing binary Constructor" } -- Invalid cast: "Testing
> binary Constructor" cast as xs:hexBinary</error:format-string>
>   <error:retryable>false</error:retryable>
>   <error:expr>binary { "Testing binary Constructor" }</error:expr>
>
> When I just copy paste whatever you have sent then it is working.
> xquery version "1.0-ml";
> xdmp:document-insert("notxml.xml", binary { "deadbeef" } );
> xdmp:node-kind(doc("notxml.xml")/node())
> => binary
>
> Please let me know what to do in this regard.
>
> Thanks and Regards,
> Santhosh Rajasekaran
> Tata Consultancy Services
> Mailto: [email protected]
> Website: http://www.tcs.com<http://www.tcs.com/> <http://www.tcs.com/>
> ____________________________________________
> Experience certainty.        IT Services
>                        Business Solutions
>                        Outsourcing
> ____________________________________________
>
>
>
> From:         Danny Sokolsky <[email protected]>
> To:   General Mark Logic Developer Discussion
> <[email protected]>
> Date:         09/04/2009 10:07 PM
> Subject:      RE: [MarkLogic Dev General] How to insert
> binary or text document        using xdmp:document-insert()
> function - reg.,
> Sent by:      [email protected]
>
> ________________________________
>
>
>
>
> You can use the text { } or binary { } or node constructors.
> xdmp:document-insert will load the document according to the
> node kind of the 2nd parameter.  For example, to store a text
> file with uri "notxml.xml", try something like this:
>
> xquery version "1.0-ml";
> xdmp:document-insert("notxml.xml", text { "This is a text node." } );
> xdmp:node-kind(doc("notxml.xml")/node())
> => text
>
> xquery version "1.0-ml";
> xdmp:document-insert("notxml.xml", binary { "deadbeef" } );
> xdmp:node-kind(doc("notxml.xml")/node())
> => binary
>
> -Danny
>
> From: [email protected]
> [mailto:[email protected]
> <mailto:[email protected]> ] On Behalf
> Of Santhosh Raj
> Sent: Friday, September 04, 2009 7:46 AM
> To: [email protected]
> Subject: [MarkLogic Dev General] How to insert binary or text
> document using xdmp:document-insert() function - reg.,
>
>
> Hi all,
>
>         I have to store .txt or .doc,.pdf files in marklogic
> server using xdmp:document-insert() function.
>
> In the Marklogic built-in functions it is represented as following:
>
> xdmp:document-insert(
> $uri as xs:string,
> $root as node(),
> [$permissions as element(sec:permission)*],
> [$collections as xs:string*],
> [$quality as xs:int?],
> [$forest-ids as xs:unsignedLong*]
> )  as  empty-sequence()
>
>
> $root : The root node. The root node can be one of XML
> format, binary (BLOB) format, or text (CLOB) format.
>
> Eg: If i want to store a .txt file (sample.txt) with content
> as "This is a sample text document."
>         or
>       If i want to store a .doc file (sample.doc) with
> content as "This is a sample word document"
>
> then how do i construct the root node of  binary(BLOB) format
> or text(CLOB) format.
>
> How can i insert the document(text/doc) to database.
>
>
> Thanks and Regards,
> Santhosh Rajasekaran
> =====-----=====-----=====
> Notice: The information contained in this e-mail
> message and/or attachments to it may contain
> confidential or privileged information. If you are
> not the intended recipient, any dissemination, use,
> review, distribution, printing or copying of the
> information contained in this e-mail message
> and/or attachments to it are strictly prohibited. If
> you have received this communication in error,
> please notify us by reply e-mail or telephone and
> immediately and permanently delete the message
> and any attachments. Thank you
>
>
> _______________________________________________
> General mailing list
> [email protected]
> http://xqzone.com/mailman/listinfo/general
> <http://xqzone.com/mailman/listinfo/general>
>
>
>
> =====-----=====-----=====
> Notice: The information contained in this e-mail
> message and/or attachments to it may contain
> confidential or privileged information. If you are
> not the intended recipient, any dissemination, use,
> review, distribution, printing or copying of the
> information contained in this e-mail message
> and/or attachments to it are strictly prohibited. If
> you have received this communication in error,
> please notify us by reply e-mail or telephone and
> immediately and permanently delete the message
> and any attachments. Thank you
>
>
>

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


=====-----=====-----=====

Notice: The information contained in this e-mail

message and/or attachments to it may contain

confidential or privileged information. If you are

not the intended recipient, any dissemination, use,

review, distribution, printing or copying of the

information contained in this e-mail message

and/or attachments to it are strictly prohibited. If

you have received this communication in error,

please notify us by reply e-mail or telephone and

immediately and permanently delete the message

and any attachments. Thank you




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

Reply via email to