<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caml on csegura</title><link>https://blog.romheat.net/tags/caml/</link><description>Recent content in Caml on csegura</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 22 Apr 2009 00:00:00 +0200</lastBuildDate><atom:link href="https://blog.romheat.net/tags/caml/index.xml" rel="self" type="application/rss+xml"/><item><title>YACAMLQT (Yet another CAML query tool) Redux (2)</title><link>https://blog.romheat.net/posts/2009/09_04_22_yacamltool_2/</link><pubDate>Wed, 22 Apr 2009 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2009/09_04_22_yacamltool_2/</guid><description>&lt;p>Habíamos visto la parte relacionada con el Lexer el analizador morfológico. Como es obvio detrás debe haber un analizador sintáctico y semántico el &lt;a href="https://web.archive.org/web/20130904001414/http://en.wikipedia.org/wiki/Parsing" target="_blank">Parser&lt;/a>.&lt;/p>
&lt;p>El analizador sintáctico y semántico (&lt;strong>NParser&lt;/strong>) se ha implementado siguiendo el patrón interpeter, (&lt;em>seguramente sea uno de los que menos se ven&lt;/em>), el objetivo es obtener los distintos Tokens desde el Scanner y montar un árbol sintáctico (&lt;a href="https://web.archive.org/web/20130904001414/http://en.wikipedia.org/wiki/Abstract_syntax_tree" target="_blank">AST&lt;/a>) este árbol contiene Nodos (&lt;strong>ASTNodeBase&lt;/strong>) y estos nodos representan de manera abstracta y simplificada la estructura sintáctica de la consulta en SQL.&lt;/p></description></item><item><title>YACAMLQT (Yet another CAML query tool) Redux (2)</title><link>https://blog.romheat.net/posts/2009/09_04_23_yacamltool_3/</link><pubDate>Wed, 22 Apr 2009 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2009/09_04_23_yacamltool_3/</guid><description>&lt;p>Bueno, esta es la última entrega a partir de hoy el proyecto se encuentra en CodePlex (yacamlqt.codeplex.com).&lt;/p>
&lt;p>En esta última parte solo unas pequeñas notas para el usuario final.&lt;/p>
&lt;p>Bien, para usar YACAMLQT, dentro de tus proyectos, solo hay que referenciar la dll (IdeSeg.SharePoint.Caml.QueryParser.dll) y el uso sería el siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-csharp" data-lang="csharp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">try&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">var&lt;/span> parser = &lt;span style="color:#66d9ef">new&lt;/span> NParser(textTSql, &lt;span style="color:#66d9ef">new&lt;/span> ASTNodeCAMLFactory());
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">var&lt;/span> generator = &lt;span style="color:#66d9ef">new&lt;/span> CodeGenerator(parser.Parse());
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> generator.Generate();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> _formatTools.FormatXml(generator.Code);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">catch&lt;/span> (ParserException ex)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> _view.Status = ex.Message;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">catch&lt;/span> (ScannerException ex)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> _view.Status = ex.Message;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Instanciamos el Parser (NParser), le pasamos la consulta en TSQL (textSql) y la factoría correspondiente a lo que queremos generar, por el momento solo está disponible la de CAML, en breve completaré la de CAML.Net; Por último inyectamos el Parser en el Generador de código, llamamos al método Generate y recogemos la consulta en CAML en generator.Code.&lt;/p></description></item><item><title>YACAMLQT (Yet another CAML query tool) Redux (1)</title><link>https://blog.romheat.net/posts/2009/09_04_21_yacamltool/</link><pubDate>Tue, 21 Apr 2009 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2009/09_04_21_yacamltool/</guid><description>&lt;p>Hace un mes, John Holliday, me pidió a ver si podíamos integrar su CAML.net con mi YACAMLQT, a la vez que ampliar mi herramienta para soportar otro tipo de consultas como adds y updates.&lt;/p>
&lt;p>YACAMLQT, es una utilidad que convierte una sentencia SQL en CAML, el lenguaje de consulta de Sharepoint. (Véase YACAMLQT, YACAMLQT2 y YACAMLQT-CAML.Net)&lt;/p>
&lt;p>Estos días entre rato bueno y rato malo, he reescrito totalmente el código de YACAMLQT, para hacerlo más sencillo (por supuesto usando TDD), en principio el objetivo ha sido emular el antiguo YACAMLQT, pero dotándolo de un diseño más sencillo y ampliable.&lt;/p></description></item><item><title>Yet Another Caml Query Tool 2</title><link>https://blog.romheat.net/posts/2007/07_06_23_yacaml_qt_2/</link><pubDate>Sat, 23 Jun 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_06_23_yacaml_qt_2/</guid><description>&lt;p>Continuing with the YACAMLQT, I have finished the first version. Now the “toy” tool supports, “group by” and “order by”, and some expression errors are now fixed. In order to not increase the complexity of the lexer part, the clause “group by” must be write like “groupby” and the “order by” clause as “orderby”.&lt;/p>
&lt;p>To support this new clauses the first expression must begin with a “where” clause. The syntax is:&lt;/p></description></item><item><title>Yet Another Caml Query Tool</title><link>https://blog.romheat.net/posts/2007/07_06_19_yacaml_qt/</link><pubDate>Tue, 19 Jun 2007 00:00:00 +0200</pubDate><guid>https://blog.romheat.net/posts/2007/07_06_19_yacaml_qt/</guid><description>&lt;p>Some time ago, I thought write a small tool in order to do &lt;strong>CAML&lt;/strong> queries in plain text, as in SQL “&lt;em>&lt;strong>where&lt;/strong>&lt;/em>” clause. I have the idea forgotten, I missed myself in the daily work. Yesterday doing a little modification in a program I remembered this, of course while I was writting a complex &lt;strong>CAML&lt;/strong> query.&lt;/p>
&lt;p>I named it “Yet Another CAML Query Tool” aka (&lt;strong>YACAML-QT&lt;/strong>).&lt;/p>
&lt;p>By moment it’s a little toy, you can write your queries as in a “&lt;strong>&lt;em>where&lt;/em>&lt;/strong>” clause, using the same syntax that you’d write in a SQL Sentence. It’s is more easy!!!&lt;/p></description></item><item><title>CAML XML Editor v1</title><link>https://blog.romheat.net/posts/2005/05_12_18_camleditor_v1/</link><pubDate>Sun, 18 Dec 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_12_18_camleditor_v1/</guid><description>&lt;p>Days ago I showed my last toy project called CAML Editor, this first sketch was only a test application. Now I have the pleasure to announce that the first version is here to stay ;-) .&lt;/p>
&lt;p>• New tabbed interface
• Code completion and folding support in text editor
• CAML code generator completely rewritten
• Many Bugs fixed
• New Validation error interface inside of the editor&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/CAMLEditor-v1-Editor.gif" alt="">
&lt;img src="https://blog.romheat.net/images/Sharepoint/CAMLEditor-v1-Generator.gif" alt="">
&lt;img src="https://blog.romheat.net/images/Sharepoint/CAMLEditor-v1-Preview.gif" alt="">&lt;/p>
&lt;p>You can download it here… CAMLEditor v1.0.zip (246,46 KB)&lt;/p></description></item><item><title>CAML XML Editor</title><link>https://blog.romheat.net/posts/2005/05_12_06_caml_xml_editor/</link><pubDate>Tue, 06 Dec 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_12_06_caml_xml_editor/</guid><description>&lt;p>My last project has changed of name, I believe that CAML XML EDITOR will be called.&lt;/p>
&lt;p>Join to workspaces.gotdotnet.com/CAMLEditor&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/CAML-Editor-v0-1.gif" alt="camlxmleditor.gif">&lt;/p>
&lt;p>At the moment he is a simple XML editor that allows simultaneously to publish the code by fragments (use the context menu in editor) that can are validated themselves. Also has a HTML preview to show the HTML code generated.&lt;/p>
&lt;p>&lt;img src="https://blog.romheat.net/images/Sharepoint/CAML-Editor-v0-2.gif" alt="camlxmleditor.gif">&lt;/p>
&lt;p>And a little CAML generator, you can select any CAML then you has the correct XML, if you select a reference in the XML you can expand it using the context menu.&lt;/p></description></item><item><title>Caml Editor</title><link>https://blog.romheat.net/posts/2005/05_12_01_caml_editor/</link><pubDate>Thu, 01 Dec 2005 00:00:00 +0100</pubDate><guid>https://blog.romheat.net/posts/2005/05_12_01_caml_editor/</guid><description>&lt;p>Para la mayoría de los que trabajamos con SharePoint, el personalizar listas, sitios o áreas usando CAML, seré suave, es un INFIERNO, pero para bien o para mal vamos a tener que convivir con el.&lt;/p>
&lt;p>No quiero entrar en detalles acerca de lo bueno o malo, de lo dificultoso o no que pueda llegar a ser, por que como ya he dicho antes hay que convivir con el. Así que he pensado en ser más tolerante y tratar de solucionar los problemas en la medida de lo posible.&lt;/p></description></item></channel></rss>