Поделиться через


XmlSchemaObject.Namespaces Свойство

Определение

Возвращает или задает XmlSerializerNamespaces для использования с этим объектом схемы.

public:
 property System::Xml::Serialization::XmlSerializerNamespaces ^ Namespaces { System::Xml::Serialization::XmlSerializerNamespaces ^ get(); void set(System::Xml::Serialization::XmlSerializerNamespaces ^ value); };
public System.Xml.Serialization.XmlSerializerNamespaces Namespaces { get; set; }
member this.Namespaces : System.Xml.Serialization.XmlSerializerNamespaces with get, set
Public Property Namespaces As XmlSerializerNamespaces

Значение свойства

Свойство XmlSerializerNamespaces объекта схемы.

Примеры

В следующем примере префикс myImpPrefix добавляется на уровне элемента схемы. Затем префикс используется для определения, импортируемые из myImportNamespace.

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);
    }
}
Imports System.Xml
Imports System.Xml.Schema

Class XmlSchemaObject
   
   Public Shared Sub Main()
      Dim s As New XmlSchema()
      s.TargetNamespace = "myNamespace"
      s.Namespaces.Add("myImpPrefix", "myImportNamespace")
      
      ' Create the <xs:import> element.
      Dim import As 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.
      Dim elem As New XmlSchemaElement()
      elem.SchemaTypeName = New XmlQualifiedName("importType", "myImportNamespace")
      elem.Name = "element1"
      
      s.Items.Add(elem)
      s.Write(Console.Out)
   End Sub
End Class

В примере создается следующий 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>

Комментарии

Это позволяет объектной модели схемы (SOM) добавлять объявления xmlns. Это полезно, если вы хотите объявить префикс для квалификации объявлений из импортированной схемы или использовать в атрибуте xpath элемента xs:selector.

Можно также использовать Namespaces свойство для изменения префиксов пространства имен в схеме. Например, можно изменить префикс, используемый схемой для пространства имен схемы XML W3C на xsd, как показано в следующем примере.

Dim namespaces As XmlSerializerNamespaces = New XmlSerializerNamespaces()
namespaces.Add("myChangedPrefix", "myImportNamespace");
s.Namespaces = namespaces;
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add("myChangedPrefix", "myImportNamespace");
s.Namespaces = namespaces;

Применяется к