XmlSchemaComplexContent Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет элемент complexContent
из схемы XML, определенной консорциумом World Wide Web Consortium (W3C). Данный класс представляет сложную модель содержимого для сложных типов. Он содержит расширения и ограничения по сложному типу, который включает либо только элементы, либо смешанное содержимое.
public ref class XmlSchemaComplexContent : System::Xml::Schema::XmlSchemaContentModel
public class XmlSchemaComplexContent : System.Xml.Schema.XmlSchemaContentModel
type XmlSchemaComplexContent = class
inherit XmlSchemaContentModel
Public Class XmlSchemaComplexContent
Inherits XmlSchemaContentModel
- Наследование
Примеры
В следующем примере создается complexContent
элемент.
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
class XmlSchemaExamples
{
public:
static void Main()
{
XmlSchema^ schema = gcnew XmlSchema();
// <xs:complexType name="address">
XmlSchemaComplexType^ address = gcnew XmlSchemaComplexType();
schema->Items->Add(address);
address->Name = "address";
// <xs:sequence>
XmlSchemaSequence^ sequence = gcnew XmlSchemaSequence();
address->Particle = sequence;
// <xs:element name="name" type="xs:string"/>
XmlSchemaElement^ elementName = gcnew XmlSchemaElement();
sequence->Items->Add(elementName);
elementName->Name = "name";
elementName->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="street" type="xs:string"/>
XmlSchemaElement^ elementStreet = gcnew XmlSchemaElement();
sequence->Items->Add(elementStreet);
elementStreet->Name = "street";
elementStreet->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="city" type="xs:string"/>
XmlSchemaElement^ elementCity = gcnew XmlSchemaElement();
sequence->Items->Add(elementCity);
elementCity->Name = "city";
elementCity->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:complexType name="USAddress">
XmlSchemaComplexType^ USAddress = gcnew XmlSchemaComplexType();
schema->Items->Add(USAddress);
USAddress->Name = "USAddress";
// <xs:complexContent>
XmlSchemaComplexContent^ complexContent = gcnew XmlSchemaComplexContent();
USAddress->ContentModel = complexContent;
// <xs:extension base="address">
XmlSchemaComplexContentExtension^ extensionAddress = gcnew XmlSchemaComplexContentExtension();
complexContent->Content = extensionAddress;
extensionAddress->BaseTypeName = gcnew XmlQualifiedName("address");
// <xs:sequence>
XmlSchemaSequence^ sequence2 = gcnew XmlSchemaSequence();
extensionAddress->Particle = sequence2;
// <xs:element name="state" type="xs:string"/>
XmlSchemaElement^ elementUSState = gcnew XmlSchemaElement();
sequence2->Items->Add(elementUSState);
elementUSState->Name = "state";
elementUSState->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="zipcode" type="xs:positiveInteger"/>
XmlSchemaElement^ elementZipcode = gcnew XmlSchemaElement();
sequence2->Items->Add(elementZipcode);
elementZipcode->Name = "zipcode";
elementZipcode->SchemaTypeName = gcnew XmlQualifiedName("positiveInteger", "http://www.w3.org/2001/XMLSchema");
XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
schemaSet->ValidationEventHandler += gcnew ValidationEventHandler(ValidationCallbackOne);
schemaSet->Add(schema);
schemaSet->Compile();
XmlSchema^ compiledSchema;
for each (XmlSchema^ schema1 in schemaSet->Schemas())
{
compiledSchema = schema1;
}
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager(gcnew NameTable());
nsmgr->AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
compiledSchema->Write(Console::Out, nsmgr);
}
static void ValidationCallbackOne(Object^ sender, ValidationEventArgs^ args)
{
Console::WriteLine(args->Message);
}
};
int main()
{
XmlSchemaExamples::Main();
return 0;
};
using System;
using System.Xml;
using System.Xml.Schema;
class XMLSchemaExamples
{
public static void Main()
{
XmlSchema schema = new XmlSchema();
// <xs:complexType name="address">
XmlSchemaComplexType address = new XmlSchemaComplexType();
schema.Items.Add(address);
address.Name = "address";
// <xs:sequence>
XmlSchemaSequence sequence = new XmlSchemaSequence();
address.Particle = sequence;
// <xs:element name="name" type="xs:string"/>
XmlSchemaElement elementName = new XmlSchemaElement();
sequence.Items.Add(elementName);
elementName.Name = "name";
elementName.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="street" type="xs:string"/>
XmlSchemaElement elementStreet = new XmlSchemaElement();
sequence.Items.Add(elementStreet);
elementStreet.Name = "street";
elementStreet.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="city" type="xs:string"/>
XmlSchemaElement elementCity = new XmlSchemaElement();
sequence.Items.Add(elementCity);
elementCity.Name = "city";
elementCity.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:complexType name="USAddress">
XmlSchemaComplexType USAddress = new XmlSchemaComplexType();
schema.Items.Add(USAddress);
USAddress.Name = "USAddress";
// <xs:complexContent>
XmlSchemaComplexContent complexContent = new XmlSchemaComplexContent();
USAddress.ContentModel = complexContent;
// <xs:extension base="address">
XmlSchemaComplexContentExtension extensionAddress = new XmlSchemaComplexContentExtension();
complexContent.Content = extensionAddress;
extensionAddress.BaseTypeName = new XmlQualifiedName("address");
// <xs:sequence>
XmlSchemaSequence sequence2 = new XmlSchemaSequence();
extensionAddress.Particle = sequence2;
// <xs:element name="state" type="xs:string"/>
XmlSchemaElement elementUSState = new XmlSchemaElement();
sequence2.Items.Add(elementUSState);
elementUSState.Name = "state";
elementUSState.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="zipcode" type="xs:positiveInteger"/>
XmlSchemaElement elementZipcode = new XmlSchemaElement();
sequence2.Items.Add(elementZipcode);
elementZipcode.Name = "zipcode";
elementZipcode.SchemaTypeName = new XmlQualifiedName("positiveInteger", "http://www.w3.org/2001/XMLSchema");
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallbackOne);
schemaSet.Add(schema);
schemaSet.Compile();
XmlSchema compiledSchema = null;
foreach (XmlSchema schema1 in schemaSet.Schemas())
{
compiledSchema = schema1;
}
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
compiledSchema.Write(Console.Out, nsmgr);
}
public static void ValidationCallbackOne(object sender, ValidationEventArgs args)
{
Console.WriteLine(args.Message);
}
}
Option Strict On
Option Explicit On
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema As New XmlSchema()
' <xs:complexType name="address">
Dim address As New XmlSchemaComplexType()
schema.Items.Add(address)
address.Name = "address"
' <xs:sequence>
Dim sequence As New XmlSchemaSequence()
address.Particle = sequence
' <xs:element name="name" type="xs:string"/>
Dim elementName As New XmlSchemaElement()
sequence.Items.Add(elementName)
elementName.Name = "name"
elementName.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="street" type="xs:string"/>
Dim elementStreet As New XmlSchemaElement()
sequence.Items.Add(elementStreet)
elementStreet.Name = "street"
elementStreet.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="city" type="xs:string"/>
Dim elementCity As New XmlSchemaElement()
sequence.Items.Add(elementCity)
elementCity.Name = "city"
elementCity.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:complexType name="USAddress">
Dim USAddress As New XmlSchemaComplexType()
schema.Items.Add(USAddress)
USAddress.Name = "USAddress"
' <xs:complexContent>
Dim complexContent As New XmlSchemaComplexContent()
USAddress.ContentModel = complexContent
' <xs:extension base="address">
Dim extensionAddress As New XmlSchemaComplexContentExtension()
complexContent.Content = extensionAddress
extensionAddress.BaseTypeName = New XmlQualifiedName("address")
' <xs:sequence>
Dim sequence2 As New XmlSchemaSequence()
extensionAddress.Particle = sequence2
' <xs:element name="state" type="xs:string"/>
Dim elementUSState As New XmlSchemaElement()
sequence2.Items.Add(elementUSState)
elementUSState.Name = "state"
elementUSState.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="zipcode" type="xs:positiveInteger"/>
Dim elementZipcode As New XmlSchemaElement()
sequence2.Items.Add(elementZipcode)
elementZipcode.Name = "zipcode"
elementZipcode.SchemaTypeName = New XmlQualifiedName("positiveInteger", "http://www.w3.org/2001/XMLSchema")
Dim schemaSet As New XmlSchemaSet()
AddHandler schemaSet.ValidationEventHandler, AddressOf ValidationCallbackOne
schemaSet.Add(schema)
schemaSet.Compile()
Dim compiledSchema As XmlSchema = Nothing
For Each schema1 As XmlSchema In schemaSet.Schemas()
compiledSchema = schema1
Next
Dim nsmgr As New XmlNamespaceManager(New NameTable())
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
compiledSchema.Write(Console.Out, nsmgr)
End Sub
Public Shared Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs)
Console.WriteLine(args.Message)
End Sub
End Class
Следующий XML-файл создается для предыдущего примера кода.
<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="address">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="street" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="USAddress">
<xs:complexContent mixed="false">
<xs:extension base="address">
<xs:sequence>
<xs:element name="state" type="xs:string"/>
<xs:element name="zipcode" type="xs:positiveInteger"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
Конструкторы
XmlSchemaComplexContent() |
Инициализирует новый экземпляр класса XmlSchemaComplexContent. |
Свойства
Annotation |
Возвращает или задает свойство |
Content |
Возвращает или задает содержимое. |
Id |
Получает или задает идентификатор строки. (Унаследовано от XmlSchemaAnnotated) |
IsMixed |
Возвращает или задает информацию, которая определяет, имеет ли тип модель смешанного содержимого. |
LineNumber |
Получает или задает номер строки в файле, на которую ссылается элемент |
LinePosition |
Получает или задает позицию в строке файла, на которую ссылается элемент |
Namespaces |
Получает или задает XmlSerializerNamespaces для использования с данным объектом схемы. (Унаследовано от XmlSchemaObject) |
Parent |
Получает или задает родительский элемент данного XmlSchemaObject. (Унаследовано от XmlSchemaObject) |
SourceUri |
Получает или задает исходного расположение для файла, загрузившего данную схему. (Унаследовано от XmlSchemaObject) |
UnhandledAttributes |
Получает или задает уточненные атрибуты, не принадлежащие целевому пространству имен текущей схемы. (Унаследовано от XmlSchemaAnnotated) |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |