Archivo

Archive for the ‘XML’ Category

[XML] Error – "Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function."

noviembre 14, 2009 Deja un comentario

buenas,

Aquí mi solución para este problema , supongamos que tenemos el siguiente archivo XML, que puede ser una respuesta de consumir un WebService, un archivo que generamos, etc.

Archivo Xml

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetReportResultsResponse xmlns="https://myservice">
      <GetReportResultsResult>FileXml</GetReportResultsResult>
    </GetReportResultsResponse>
  </soap:Body>
</soap:Envelope>

Como se pueden dar cuenta, se observan prefijos en cada nodo, este prefijo es “soap” y el archivo Xml contiene el namespace para usar este prefijo, pero al momento de seleccionar un nodo de la siguiente manera:

XmlDocument document = new XmlDocument();
document.Load(@"../../FileXml.xml");

XmlNodeList nodes = 
    document.SelectNodes(@"soap:Body");

Visual Studio nos informa de la siguiente excepción:

“Exception: Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.”

Esto se debe a que no se reconoce el nombre de espacio que contiene nuestro archivo Xml, para solucionarlo debemos agregar un administrador de namespace y agregarlo a la selección de la siguiente manera:

Solución:

XmlNamespaceManager nms = 
    new XmlNamespaceManager(document.NameTable);
nms.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope");


XmlNodeList nodes = 
    document.SelectNodes(@"soap:Body",nms);

Con esto es suficiente para poder seleccionar nuestros nodos, y así manipularlo a nuestro antojo. Espero que les ayude este tip, así que saludos….. 😀

Saludos,

Norberto 😛

Etiquetas de Technorati: ,,,
Anuncios
Categorías:Ejemplos, Errores, Tips, XML

[RSS] Generando RSS desde una Base de Datos con ASP.NET (C#)

Este es un tema ya un poco trillado, pero vamos a hacer un ejemplo de como leer datos de una tabla, y mostrarlos en una página de .aspx. Bien aquí el como hacerlo.

Primero creamos una tabla (si es que no la tenemos) sencilla que tiene el siguiente diseño:

image

Muy sencilla como pueden observar. Ya con nuestra tabla ingresamos unos cuantos datos. Luego creamos un Sitio Web desde Visual Studio con C#. Lo primero que hacemos es crear nuestra cadena de conexión en nuestro archivo Web.config con las siguiente instrucción:

<connectionStrings>
        <add name="cnx" connectionString="Data source=SQLNOR;
                    initial catalog=BD_DEMOS;
                    User id=******;
                    password=******" 
             providerName="System.Data.SqlClient"/>
    </connectionStrings>

Luego desde el código manejado creamos una función que nos regrese nuestra conexión, ya saben por estética xD, la función es el siguiente:

private SqlConnection miConexion()
   {
       return new SqlConnection(WebConfigurationManager.ConnectionStrings["cnx"].ConnectionString);
   }

Después creamos otra Función para llenar nuestro DataSet, el cual vamos a ocupar para crear el archivo XML que mostrara las RSS, la función de para llenar el DataSet tiene la siguiente estructura:

private DataSet LlenarDataSet()
   {
       SqlConnection cn = miConexion();
       SqlCommand com = new 
           SqlCommand("SELECT Titulo, Descripcion, Link, FechaAdd FROM Entradas", cn);
       cn.Open();
       SqlDataAdapter da = new SqlDataAdapter(com);
       DataSet ds = new DataSet();
       da.Fill(ds);
       com.Dispose();
       cn.Close();
       return ds;
   }

En esta parte y por la sencillez del ejemplo, me pase por alto el colocar TRY-CATCH, el utilizar Using para declarar la conexión,  y coloque directamente una instrucción T-SQL cosa que en una aplicación no se debe de hacer, pero vale que es solo un ejemplo, para que sepan como hacerlo.

Por ultimo tenemos que hacer un método que para crear la estructura del XML de nuestros RSS.

private void getCanalRSS(DataSet ds)
   {
       XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, System.Text.Encoding.UTF8);
       writer.WriteStartDocument();
       writer.WriteStartElement("rss");
       writer.WriteAttributeString("version", "2.0");
       writer.WriteStartElement("channel");
       writer.WriteElementString("title", "My Content Pipeline");
       writer.WriteElementString("link", "https://mspnor.wordpress.com");
       writer.WriteElementString("description", "Ejemplo del canal de RSS de mi blog");
       writer.WriteElementString("copyright", "(c) 2008, Blog del nor xD.");

       for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
       {
           writer.WriteStartElement("item");
           writer.WriteElementString("title", ds.Tables[0].Rows[i]["Titulo"].ToString());
           writer.WriteElementString("description", ds.Tables[0].Rows[i]["Descripcion"].ToString());
           writer.WriteElementString("link", ds.Tables[0].Rows[i]["Link"].ToString());
           writer.WriteElementString("pubDate", ds.Tables[0].Rows[i]["FechaAdd"].ToString());
           writer.WriteEndElement();
       }
       writer.WriteEndElement();
       writer.WriteEndElement();
       writer.WriteEndDocument();
       writer.Flush();
       writer.Close();
   }

Bueno pues hasta aquí creo que es todo, solo resta colocar esto en el evento Load de nuestra página:

DataSet ds = LlenarDataSet();
        Response.Clear();
        Response.ContentType = "text/xml";
        getCanalRSS(ds);
        Response.End();

Después generar y por ultimo presionar F5 en nuestro teclado xD.

Antes de terminar quiero comentarles que hice la prueba con IE8, Mozilla y Chrome y el resultado fue que Chrome no reconoce los RSS, por los otros 2 todo muy bien. Creo que es todo y espero que les sea de utilidad.

Saludos!

Iralo!…ese!!..@nor

Vídeos o Screencast de Visual Basic 2008 (VB9)

diciembre 29, 2007 Deja un comentario

Hola, así es gracias aun comentario, ak este post en donde están los links para acceder a estos videos o screencast, como los quieran llamar sobre la nueva Versión de Visual Basic, estos son referenetes a LINQ, XML, Intellisense, Extensión de Métodos, Objetos, tipos Implícitos, pero en especial a LINQ.

Espero que les sean de utilidad y a disfrutar, todos están en Ingles, pero creo que son bastante entendibles así que aquí los Links:

wmp Partial Methods in VB9 wmpVB9 – Collection Initialisers
wmpVB Intellisense In VS2008 wmpVB9 – Extension Methods
wmpNamespaces in VB with LINQ to XML wmpVB9 – Implicit Types
wmpQuerying XML in VB with LINQ to XML wmpVB9 – Object Initialisers
wmpCreating XML in VB with LINQ to XML wmpLINQ to SQL- Overview
wmpVB9 – Dynamic Interfaces wmpLINQ to SQL- Data Model
wmpVB9 – Dynamic Identifiers wmpLINQ to SQL- Querying the Database
wmpVB9 – XML Support wmpLINQ to SQL- Updating the Database
wmpVB9 – Pieces of LINQ wmpCreate Excel Spreadsheets using LINQ to XML-
wmpVB9 – Anonymous Types wmpGet Started with LINQ

 

Como siempre digo: ya saben a disfrutar 🙂 y feliz año 2008

Categorías:ADO.NET, LINQ, Screencast, VB.NET, XML

Aprendiendo SQL Server 2005 Express

octubre 6, 2007 Deja un comentario

sin-titulo-1.jpg

Hace un momento publique unos pequeños post sobre SQL Server 2005 Express en mi Spaces, los cuales se llaman Cómo crear una base de datos con SQL Server 2005 Express y Procedimientos almacenados en SQL Server 2005 Express.

Pero este post no solo es para que chequen estos post sino para mencionarles algunas características de SQL Server 2005 Express.pues aquí las características para que lo usen

Fácil de instalar y configurar

    • Rápida descarga
    • Interfaz de configuración simplificada
    • Instalación sin intervención del usuario para utilización
    embebida
    • Implementación integrada mediante un solo Click

    Fácil de utilizar y Administrar

    • Herramienta nueva y ligera para la administración
    y edición de consultas
    • Optimizador avanzado de consultas
    • Ajuste automatizado
    • Asistentes para las tareas más comunes
    • Administrador de equipo para iniciar y detener el servicio
    • Servicio y aplicación de revisiones automatizados (parte
    de Microsoft Update)
    • Compatibilidad XCopy

    Seguridad Robusta

• Valores predeterminados seguros
• Derechos de administración detallados
• Tres niveles de seguridad de acceso al código
     – Seguro
     – Acceso externo (verificable)
     – No seguro
• Aprovechamiento de los procedimientos almacenados como
capa de abstracción
• Compatibilidad con Active Directory
• Compatibilidad con la autenticación de Windows

Amplia funcionalidad de bases de datos

• Procedimientos almacenados
• Vistas
• Triggers
• Cursores
• Índices ampliados
• Aislamiento a nivel de snapshot
• Optimizador avanzado de consultas
• Compatibilidad con T-SQL

Compatibilidad con XML

• Tipo XML nativo
• Compatibilidad con datos estructurados y semiestructurados
• Compatibilidad con XQuery
• Compatibilidad con esquemas XML

Profunda integración con Visual Studio 2005

• Se instala con Visual Studio 2005
• Explorador de datos de Visual Studio para diseñar esquemas,
agregar datos y realizar consultas en bases de datos locales
• CLR alojado en SQL Server Express
• Tipos y agregados definidos por el usuario
• Acceso a datos en proceso con ADO.NET v2
• Integración de seguridad de SQL y CLR
• Depuración integrada
• Controles de informes de SQL en VS

Escalabilidad y rendimiento

• Es compatible con equipos con una sola CPU, pero puede
instalarse en cualquier servidor
• 1 GB de RAM asignable
• 4 GB de tamaño de la base de datos

Base de datos cliente distribuida
• Suscriptor de réplica transaccional
• Suscriptor de réplica de combinación
• Cliente para SQL Server Service broker
• Compatibilidad con transacciones distribuidas

y lo mejor de TODO!!

Sencillez de precios y licencias
Siempre gratuito
• Redistribución libre de cánones (requiere registro)
• SQL Server Express es gratuito porque creemos que ayudar
a los programadores a crear excelentes aplicaciones contribuye
a conseguir una fidelidad de los clientes a largo plazo

Así que ya saben no esperan más y a probar SQL Server 2005 Express 🙂

URL:http://msdn.microsoft.com/sql/express

Categorías:SQL Server, XML

Código fuente del Framework 3.5 de .NET será revelado!

octubre 5, 2007 Deja un comentario

untitled A solo unos meses del lanzamiento del nuevo Visual Studio 2008 y su Framework 3.5, Microsoft hace público el código fuente de las librerías del Framework 3.5, para muchos el mejor Framework que ha desarrollado.

Para poder acceso a este código del Framework es necesario aceptar una licencia con la que el código de Visual Studio será liberado, la cual tiene el nombre de Microsoft Reference License (Ms-RL).se podrá descargar vía un instalador independiente, por lo que no será obligatorio tener Visual Studio para hojearlo.

Este tipo de licencia indica que, podemos ver el código fuente, pero no modificarlo, menos redistribuirlo

El código fuente de las librerías del .NET Framework podrá ser descargado y podremos acceder a el mediante un editor de texto ó bien desde la integración con el Visual Studio 2008.

Código fuente de las librerias del .NET Base Class Libraries – BCL -System
-System, System.IO
-System.Collections
-System.Configuration
-System.Thereading
-System.Net
-System.Security
-System.Runtime
-System.Text
-System.CodeDom
-System.Text.RegularExpressions
Código fuente de ASP.NET -System.Web
Código fuente de Windows Forms -System.Windows.Forms
Código fuente de ADO.NET -System.Data
Código fuente de XML -System.Xml
Código fuente de WPF -System.Windows
Categorías:.NET, ADO.NET, asp.net, WWF, XML

Open XML Training Presentations

septiembre 26, 2007 Deja un comentario

Ya están disponibles las presentaciones en formato Power Point sobre el encuentro de desarrolladores sobre Open XML celebrado en Julio de 2007 en San Francisco, lo que quiere decir que están en ingles, pero si te interesan existen 12 presentaciones diferentes y de diferentes tamaños, desde la bienvenida hasta la arquitectura y los paquetes, pues aquí el enlace para la descarga.

Descarga: 2007 Office Presentations: Open XML Training Presentations

Categorías:office, XML

Microsft XML Schema Designer – CTP Agosto 2007

agosto 29, 2007 Deja un comentario

Hace algunos días Microsoft hizo público el lanzamiento del CTP de Agosto de la nueva herramienta grafica visual, llamada Microsoft XML Schema Designer, esta herramienta es un diseñador grafico para esquemas XML. Esta herramienta nos ayuda con la exploración, la búsqueda y el trabajo de los Esquemas XML.

Para aquellos que les interese les recomiendo que los descarguen, por el momento sólo está disponible en inglés, y el tamaño de la descarga es de solo 710 Kb. Para poder instalar y probar este CTP es necesario tener instalado el Visual Studio 2008 Beta, en las versiones: Standard, Professional y Team Edition.

Descarga: Micrsoft XML Schema Designer – CTP Agosto 2007

Categorías:Visual Studio, XML