Domanda

Sto invocando una delle API del servizio Web di SharePoint che restituisce un frammento CAML. Ho cercato nell'interweb in lungo e in largo ma non sono stato in grado di capire come rendere questo frammento CAML per renderlo come "normale" HTML che posso rendere in un ambiente più sano come Plumtree, WLP, Liferay o qualsiasi altro portale oltre a SharePoint.

Senza un modo per farlo, mi chiedo perché Microsoft abbia scritto chiamate di servizi Web di SharePoint che restituiscono CAML in primo luogo. I servizi Web sono per l'interoperabilità e sembra che il CAML sia valido solo all'interno di una WebPart in esecuzione in SharePoint. [Nota per Bill e Steve: questa non è interoperabilità.]

Se non riesco a fare nulla con il CAML che ritorna, chiamerò semplicemente un servizio Web diverso che restituisce solo dati e quindi scrivo la mia interfaccia utente. Speravo in un percorso più semplice. Qualsiasi suggerimento sarebbe molto apprezzato.

È stato utile?

Soluzione

Il CAML è ancora XML e, come detto, XSLT sarà in grado di renderlo come HTML. L'attuale struttura OR / AND annidata gnraly di CAML è un altro problema.

Ciò richiederebbe srotolare la struttura CAML e mostrarla in un modo che le persone normali capiscono.

Sfortunatamente, il linguaggio XSLT non è adatto per srotolare strutture nidificate come questa (non ha stack). È possibile, ma dopo averlo fatto, consiglio vivamente di usare un'altra lingua per analizzare e srotolare il CAML.

Devo ancora vedere un codice di conversione da CAML a SQL. Sembra un grande progetto Codeplex.

Quindi in sintesi ... sei un po 'pieno di CAML. Sebbene sia XML, la sua struttura non è adatta per l'uso in qualsiasi altro linguaggio di query.

Altri suggerimenti

È possibile inviare il CAML tramite un foglio di stile XSLT per generare HTML o XHTML.

Modifica

Considerando la tua prima domanda (perché SharePoint restituisce CAML da alcuni dei suoi servizi Web) ... chi lo sa? Potrebbe essere lì per supportare strumenti di authoring come SharePoint Designer. Ma dalla carenza di documentazione e strumenti sembra chiaro che CAML sia una cosa interna a SharePoint più o meno. Al momento, eseguire la conversione da CAML a HTML richiederebbe in qualche modo l'accesso al motore di rendering CAML in SharePoint o la sua implementazione. Nessuna opzione è attraente.

Penso che la tua conclusione (chiamare i servizi web di restituzione dei dati e rendere tu stesso il codice HTML) sia probabilmente la soluzione migliore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top