[MarkLogic Dev General] Content Module in record loader

Pragya Kapoor Pragya_Kapoor at infosys.com
Mon Oct 25 04:49:18 PDT 2010


Hi,
I need to remove the punctuations(,.:;) from the title element . Using the following code  in record loader content module:
xquery version "1.0-ml";

declare variable $URI as xs:string external;
declare variable $XML-STRING as xs:string external;
declare variable $NAMESPACE as xs:string external;
declare variable $LANGUAGE as xs:string external;
declare variable $ROLES-EXECUTE as xs:string external;
declare variable $ROLES-INSERT as xs:string external;
declare variable $ROLES-READ as xs:string external;
declare variable $ROLES-UPDATE as xs:string external;
declare variable $COLLECTIONS as xs:string external;
declare variable $SKIP-EXISTING as xs:boolean external;
declare variable $ERROR-EXISTING as xs:boolean external;
declare variable $FORESTS as xs:string external;

declare function common:removepunct($node as node(), $rule as element(rule)) as node() {


        for $n in $node return typeswitch ($n)
          case element(title) return element {

            fn:QName(fn:namespace-uri($n), fn:local-name($n) )
          } {
                    $n/@*,
            fn:normalize-space(fn:replace(fn:data($n/title), $rule/punctuations/text(), '')),
            common:removepunct($n/node(),$rule) }
          case document-node() return document { common:removepunct($n)/node(), $rule) }
  default return $n
};

xdmp:document-insert(
  $URI,
  common:removepunct(xdmp:unquote(
    $XML-STRING, $rule $NAMESPACE,
    if ($LANGUAGE) then concat('default-language=', $LANGUAGE) else ()

  )),
  (
    for $r in tokenize($ROLES-EXECUTE, ',')[. ne '']
    return xdmp:permission($r, 'execute'),
    for $r in tokenize($ROLES-INSERT, ',')[. ne '']
    return xdmp:permission($r, 'insert'),
    for $r in tokenize($ROLES-READ, ',')[. ne '']
    return xdmp:permission($r, 'read'),
    for $r in tokenize($ROLES-UPDATE, ',')[. ne '']
    return xdmp:permission($r, 'update')
  ),
  tokenize($COLLECTIONS, ',')[. ne ''],
  0,
  for $id in tokenize($FORESTS, ',')[. ne '']
  return xs:unsignedLong($id)
)

But this code is not removing the punctuations. Please let me know where I am wrong.

Thanks,
Pragya

**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely 
for the use of the addressee(s). If you are not the intended recipient, please 
notify the sender by e-mail and delete the original message. Further, you are not 
to copy, disclose, or distribute this e-mail or its contents to any other person and 
any such actions are unlawful. This e-mail may contain viruses. Infosys has taken 
every reasonable precaution to minimize this risk, but is not liable for any damage 
you may sustain as a result of any virus in this e-mail. You should carry out your 
own virus checks before opening the e-mail or attachment. Infosys reserves the 
right to monitor and review the content of all messages sent to or from this e-mail 
address. Messages sent to or from this e-mail address may be stored on the 
Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://developer.marklogic.com/pipermail/general/attachments/20101025/112b55d9/attachment.html 


More information about the General mailing list