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.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
int main()
{
XmlSchema^ s = gcnew XmlSchema;
s->TargetNamespace = "myNamespace";
s->Namespaces->Add( "myImpPrefix", "myImportNamespace" );
// Create the <xs:import> element.
XmlSchemaImport^ import = gcnew 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 = gcnew XmlSchemaElement;
elem->SchemaTypeName = gcnew XmlQualifiedName( "importType","myImportNamespace" );
elem->Name = "element1";
s->Items->Add( elem );
s->Write( Console::Out );
}
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 с xs на 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;