2017-08-10 1 views
1

正しくない形式の日付とXMLを保存しない日付でMarklogic 8に(UBL)書類は次のように間違った書式設定:Marklogicは、私はいくつかのXMLを保存しようとしている

<cbc:IssueDate>2017-06-32</cbc:IssueDate> 

は私が保存するためのJava APIを使用していますそれが、理由は次の例外を保存することはできません。

Server Message: XDMP-RANGEINDEX: Range index error: date fn:doc("/pe/sunat/document/97ed960e-a34a-4a5b-b070-fad3594445be")/:SummaryDocuments/:IssueDate: XDMP-LEXVAL: Invalid lexical value "2017-06-32"

私はフォーマットの日付が正しくありませんが、私はまだそれを保存したいことを知っています。このXMLを保存することは可能ですか?

+0

ごめんなさい、私はMarklogicは、日付の範囲のインデックスを持っていたことを知らなかった、私は日付の範囲のインデックスを無効にし、それが正しく、そのXMLを保存することができます。 –

+0

範囲インデックスを完全に無効にする必要はありません。 「無効な値」設定を「拒否」から「無視」に変更することができます。それはあなたがその文書を取り込むことを可能にしますが、その値は完全に索引を取り除くのではなく、日付として索引付けされません。 https://docs.marklogic.com/admin-help/range-element-index –

+0

ありがとう@MadsHansen。 –

答えて

2

を(私はトランザクションでの文書の多くを保存するためにオブジェクトcom.marklogic.client.document.DocumentWriteSetを使用しています)あなたが変更される可能性が「を拒否する」から設定「無効な値は」「を無視」します。そうすれば、その文書を取り込むことができますが、無効な日付の値は索引付けされません。これで、後処理で日付値の書式を修正することができます。

http://docs.marklogic.com/admin-help/range-element-index

  • invalid values specifies whether server should allow insertion of documents that contain XML elements or JSON properties on which range index is configured and their contents cannot be coerced to the index data type. It can be configured to either ignore or reject. By default server rejects insertion of such documents. However, if a user configures invalid values to ignore, these documents can be inserted. This setting does not change the behavior of queries on invalid values after documents are inserted in the database. Performing an operation on an invalid value at query time can still result in an error.
+0

"無効な日付の値はインデックスに登録されません" - >これはエラーがあることを意味しますか?この場合、どのドキュメントに日付形式のエラーがあるのか​​をどのように知ることができますか?私は日付でクエリを実行したい場合は、任意のエラーを持つことができますか? –

関連する問題