2016-03-10 24 views
5

Sto tentando di aggiungere un indice di intervallo su una proprietà JSON nativa che ha due punti (:) nel suo nome in MarkLogic Server.Come posso aggiungere un indice di intervallo di elementi su JSON nativo con due punti

I dati di esempio sono i seguenti.

{ 
    "Aspects": { 
"xbrl28:TransactionTime": "2014-08-13T00:00:00+0000", 
"xbrl28:Archive": "S1002U7K", 
"xbrl:Period": "2014-08-13" 
    }, 
    "_id": "27948e6d-a774-49ee-8e30-668cc4731975" 
} 

quando ho cercato di aggiungere un indice gamma su "xbrl28: Archivio", ma non ci riesco, perché il "xbrl28:" è stata trattata come prefisso di uno spazio dei nomi. Esiste un modo per sfuggire al colon?

risposta

5

Non è possibile utilizzare gli indici di intervallo di elementi per le proprietà JSON con due punti, spazi o qualsiasi altro nome non conforme a xs: QName. Non ho provato, ma si potrebbe provare a utilizzare un indice di percorso con un'espressione come: node()[name() = "xbrl28:Archive"] o migliore: text("xbrl28:Archive").

HTH!

+0

Grazie. Potrei aggiungere l'indice dell'intervallo di percorso come segue. // text ("xbrl28: Archive") o // node ("xbrl28: Archive") –

+0

Nota: // prima del percorso è facoltativo. Pensa a quelle espressioni come modelli di corrispondenza XSLT invece che a modelli selezionati .. – grtjn

+0

Grazie, ho potuto impostare il testo ("xbrl28: archivio") e il nodo ("xbrl28: archivio"). –