XmlSchemaObject.Namespaces Proprietà

Definizione

Ottiene o imposta l'oggetto XmlSerializerNamespaces da utilizzare con questo oggetto schema.

C#
public System.Xml.Serialization.XmlSerializerNamespaces Namespaces { get; set; }

Valore della proprietà

XmlSerializerNamespaces

Proprietà XmlSerializerNamespaces per l'oggetto schema.

Esempio

Nell'esempio seguente viene aggiunto il prefisso myImpPrefix a livello di elemento dello schema. Il prefisso viene quindi usato per qualificare le definizioni importate da myImportNamespace.

C#
using System;
using System.Xml;
using System.Xml.Schema;

class XmlSchemaObject
{
    public static void Main()
    {
        XmlSchema s = new XmlSchema();
        s.TargetNamespace = "myNamespace";
        s.Namespaces.Add("myImpPrefix", "myImportNamespace");

        // Create the <xs:import> element.
        XmlSchemaImport import = new XmlSchemaImport();
        import.Namespace = "myImportNamespace";
        import.SchemaLocation = "http://www.example.com/myImportNamespace";
        s.Includes.Add(import);

        // Create an element and assign a type from imported schema.
        XmlSchemaElement elem = new XmlSchemaElement();
        elem.SchemaTypeName = new XmlQualifiedName("importType", "myImportNamespace");
        elem.Name = "element1";

        s.Items.Add(elem);
        s.Write(Console.Out);
    }
}

L'esempio produce il codice XML seguente.

XML
<?xml version="1.0" encoding="IBM437"?>
<schema xmlns:myImpPrefix="myImportNamespace" targetNamespace="myNamespace" xmlns="http://www.w3.org/2001/XMLSchema">
  <import schemaLocation="http://www.microsoft.com/myImportNamespace" namespace="myImportNamespace" />
  <element name="element1" type="myImpPrefix:importType" />
</schema>

Commenti

In questo modo, il modello a oggetti schema (SOM) consente di aggiungere dichiarazioni xmlns. Ciò è utile quando si vuole dichiarare un prefisso per qualificare le dichiarazioni da uno schema importato o usare nell'attributo xpath dell'elemento xs:selector.

È anche possibile usare la Namespaces proprietà per modificare i prefissi dello spazio dei nomi in uno schema. Ad esempio, è possibile modificare il prefisso usato da uno schema per lo spazio dei nomi XML Schema W3C da xs a xsd, come illustrato nell'esempio seguente.

C#
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();  
namespaces.Add("myChangedPrefix", "myImportNamespace");  
s.Namespaces = namespaces;  

Si applica a

Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1