¿Hay alguna manera de convertir consultas LINQ en XSLT? de la misma manera que LINQ se puede convertir a SQL?Conversión de Linq a XSLT
Quiero decir, si tengo un sólido y bien definido XML (se ajusta a un XSD) ¿hay alguna manera de compilar las cosas en System.Linq.Expressions en XSLT con respecto a ese XML?
Gracias.
A la solicitud de Dimitries intentaré elaborar un poco ... Básicamente tengo algunos datos en un solo lugar (básicamente se trata de trozos de datos serializables xml), y necesito procesarlos, necesito combinarlos y procesarlos ellos.
Tanto los datos originales entrantes como los datos del resultado de salida son XML serializables y se ajustan a un XSD bien definido.
Quiero generar la lógica de procesamiento dinámicamente, en otro lugar. Y permitir que mi usuario cambie y juegue con el procesamiento. Puedo representar el proceso por sí mismo fácilmente con árboles de Expresión. Los árboles de expresión son similares a los árboles de análisis sintáctico y pueden capturar el código del programa. Esta es la forma en que funciona linq to SQL convierte los árboles de expresión en consultas SQL.
Dado que todos los datos de ingresos y los resultados son ambos un XML bien definido, puedo hacer la transformación fácilmente con XSLT, pero no estoy lo suficientemente familiarizado con XSLT para escribir un generador XSLT dinámico. Así que pensé que podría construir las transformaciones en C# y convertirlas en XSLT ... una vez más no es C# de propósito general, pero probablemente sean consultas específicas sobre un proveedor de datos bien definido.
Para el ejemplo de amor:
(no real código)
var schemas = XSchemaSet.Load("a","b");
var doc = XDocument.Load("File",schemas);
var result = from node in doc.Nodes
where node.Name == "Cats" || node.Name == "Dogs"
select (new Node(){Name = "Animal Owner", Value = node.Owner)
var newDoc = new XDocument().AddNodes(result);
newDoc.Validate(schemas);
Básicamente quiero algo que va a funcionar así ... Puedo escribir que en una sola consulta LINQ si uso IQueryable.Aggregate
puedes contar? Tu pregunta no tiene mucho sentido. Un XSLT define un conjunto de transformaciones de un XML a otro. ¿Cómo se relaciona eso con LINQ? ¿Puedes dar ejemplos concretos? Por cierto. Si tiene un XSD, puede usar 'xsd.exe' para generar un modelo de objetos y usar LINQ para objetos sobre ese modelo de objetos. ¿Y por qué quiere usar XSLT de todos modos ?: p – Steven
¿Qué quiere decir con "LINQ se puede convertir a XML"? ¿Está hablando de usar LINq-to-XML, entonces el LINQ no se transforma en XML, sino que consulta el documento XML –
@Rune FS: me refería a SQL lo siento ... es decir, en LINQ to SQL los proveedores convierten Linq Expression en consultas SQL. –