Error: El modelo de objetos de esquema no reconoce válido prefijo en XPath selector

Seleccione idioma Seleccione idioma
Id. de artículo: 317440 - Ver los productos a los que se aplica este artículo
Se hace referencia a los espacios de nombres biblioteca de clases de .NET Framework siguientes en este artículo:

System.Xml
System.XML.Schema
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando se utiliza el modelo de objetos de esquema de lenguaje de marcado extensible (XML) (SOM) para crear y compilar un esquema desde el principio, el SOM no reconoce un prefijo válido dentro de un XML Path Language (XPath) selector. Cuando se agrega el prefijo a través de la propiedad XmlSchema.Namespaces .

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados al principio de este artículo.

Más información

Pasos para reproducir este comportamiento

  1. Inicie Visual Studio NET..
  2. Crear una nueva aplicación para Windows en Microsoft Visual C# .NET. Form1 se agrega al proyecto de manera predeterminada.
  3. Compruebe que el proyecto contiene una referencia al espacio de nombres System.Data . Si no es así, agregue una referencia a este espacio de nombres.
  4. Arrastre un control Button desde el cuadro de herramientas hasta Form1. En la ventana Propiedades, cambie la propiedad Name del botón a btnTest del sistema.
  5. Utilice la instrucción using de la System.XML y los espacios de nombres System.Xml.Schema para que no se pida calificar declaraciones en esos espacios de nombres más adelante en el código. Agregue el código siguiente a la sección "General Declarations" de Form1:
    using System.Xml;
    using System.Xml.Schema;
    					
  6. Agregue el código siguiente en el evento btnTest_Click :
    XmlSchema schema = new XmlSchema();
    schema.Namespaces.Add("r", "nsp");
    schema.Namespaces.Add("xs", "http://www.w3.org/2001/XMLSchema");
    schema.ElementFormDefault = XmlSchemaForm.Qualified;
    schema.TargetNamespace = "nsp";
    
    XmlSchemaElement element = new XmlSchemaElement();
    element.Name = "root";
    
    XmlSchemaKey element_key = new XmlSchemaKey();
    element_key.Name = "pNumKey";
    
    XmlSchemaXPath element_key_selector = new XmlSchemaXPath();
    element_key_selector.XPath = "r:part";
    element_key.Selector = element_key_selector;
    
    XmlSchemaXPath field = new XmlSchemaXPath();
    field.XPath = "@number";
    element_key.Fields.Add(field);
    element.Constraints.Add(element_key);
    
    schema.Items.Add(element);
    schema.Compile(new ValidationEventHandler(ValidationCallBack));
    schema.Write(Console.Out);
    					
  7. Agregue el código siguiente inmediatamente después del evento btnTest_Click :
    public void ValidationCallBack(object sender, ValidationEventArgs args) 
    {
        Console.WriteLine(args.Message);
        Console.WriteLine(args.Exception);
    }
    					
  8. Guardar el proyecto. En el menú Depurar , haga clic en iniciar para ejecutar el proyecto. Recibirá el siguiente mensaje de error en la ventana de resultados:
    El prefijo 'r' en XPath es irresoluble.

Referencias

Para obtener información adicional, haga clic en el número de artículo siguiente para ver el artículo en Microsoft Knowledge Base:
313651INFORMACIÓN: Guía básica para XML en .NET Framework

Propiedades

Id. de artículo: 317440 - Última revisión: lunes, 19 de febrero de 2007 - Versión: 3.3
La información de este artículo se refiere a:
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Palabras clave: 
kbmt kbbug kbnofix KB317440 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 317440

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com