XmlSchemaEnumerationFacet 類別

定義

將來自 XML 結構描述的 enumeration Facet,依全球資訊網協會 (W3C) 的規定表示。 這個類別 (Class) 指定 simpleType 項目的有效值清單。 宣告內含於 restriction 宣告中。

public ref class XmlSchemaEnumerationFacet : System::Xml::Schema::XmlSchemaFacet
public class XmlSchemaEnumerationFacet : System.Xml.Schema.XmlSchemaFacet
type XmlSchemaEnumerationFacet = class
    inherit XmlSchemaFacet
Public Class XmlSchemaEnumerationFacet
Inherits XmlSchemaFacet
繼承

範例

下列範例顯示 類別的使用 XmlSchemaEnumerationFacet

#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:simpleType name="SizeType">
        XmlSchemaSimpleType^ SizeType = gcnew XmlSchemaSimpleType();
        SizeType->Name = "SizeType";

        // <xs:restriction base="xs:string">
        XmlSchemaSimpleTypeRestriction^ restriction = gcnew XmlSchemaSimpleTypeRestriction();
        restriction->BaseTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:enumeration value="Small"/>
        XmlSchemaEnumerationFacet^ enumerationSmall = gcnew XmlSchemaEnumerationFacet();
        enumerationSmall->Value = "Small";
        restriction->Facets->Add(enumerationSmall);

        // <xs:enumeration value="Medium"/>
        XmlSchemaEnumerationFacet^ enumerationMedium = gcnew XmlSchemaEnumerationFacet();
        enumerationMedium->Value = "Medium";
        restriction->Facets->Add(enumerationMedium);

        // <xs:enumeration value="Large"/>
        XmlSchemaEnumerationFacet^ enumerationLarge = gcnew XmlSchemaEnumerationFacet();
        enumerationLarge->Value = "Large";
        restriction->Facets->Add(enumerationLarge);

        SizeType->Content = restriction;

        schema->Items->Add(SizeType);

        // <xs:element name="Item">
        XmlSchemaElement^ elementItem = gcnew XmlSchemaElement();
        elementItem->Name = "Item";

        // <xs:complexType>
        XmlSchemaComplexType^ complexType = gcnew XmlSchemaComplexType();

        // <xs:attribute name="Size" type="SizeType"/>
        XmlSchemaAttribute^ attributeSize = gcnew XmlSchemaAttribute();
        attributeSize->Name = "Size";
        attributeSize->SchemaTypeName = gcnew XmlQualifiedName("SizeType", "");
        complexType->Attributes->Add(attributeSize);

        elementItem->SchemaType = complexType;

        schema->Items->Add(elementItem);

        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:simpleType name="SizeType">
        XmlSchemaSimpleType SizeType = new XmlSchemaSimpleType();
        SizeType.Name = "SizeType";

        // <xs:restriction base="xs:string">
        XmlSchemaSimpleTypeRestriction restriction = new XmlSchemaSimpleTypeRestriction();
        restriction.BaseTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:enumeration value="Small"/>
        XmlSchemaEnumerationFacet enumerationSmall = new XmlSchemaEnumerationFacet();
        enumerationSmall.Value = "Small";
        restriction.Facets.Add(enumerationSmall);

        // <xs:enumeration value="Medium"/>
        XmlSchemaEnumerationFacet enumerationMedium = new XmlSchemaEnumerationFacet();
        enumerationMedium.Value = "Medium";
        restriction.Facets.Add(enumerationMedium);

        // <xs:enumeration value="Large"/>
        XmlSchemaEnumerationFacet enumerationLarge = new XmlSchemaEnumerationFacet();
        enumerationLarge.Value = "Large";
        restriction.Facets.Add(enumerationLarge);

        SizeType.Content = restriction;

        schema.Items.Add(SizeType);

        // <xs:element name="Item">
        XmlSchemaElement elementItem = new XmlSchemaElement();
        elementItem.Name = "Item";

        // <xs:complexType>
        XmlSchemaComplexType complexType = new XmlSchemaComplexType();

        // <xs:attribute name="Size" type="SizeType"/>
        XmlSchemaAttribute attributeSize = new XmlSchemaAttribute();
        attributeSize.Name = "Size";
        attributeSize.SchemaTypeName = new XmlQualifiedName("SizeType", "");
        complexType.Attributes.Add(attributeSize);

        elementItem.SchemaType = complexType;

        schema.Items.Add(elementItem);

        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:simpleType name="SizeType">
        Dim SizeType As New XmlSchemaSimpleType()
        SizeType.Name = "SizeType"

        ' <xs:restriction base="xs:string">
        Dim restriction As New XmlSchemaSimpleTypeRestriction()
        restriction.BaseTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")

        ' <xs:enumeration value="Small"/>
        Dim enumerationSmall As New XmlSchemaEnumerationFacet()
        enumerationSmall.Value = "Small"
        restriction.Facets.Add(enumerationSmall)

        ' <xs:enumeration value="Medium"/>
        Dim enumerationMedium As New XmlSchemaEnumerationFacet()
        enumerationMedium.Value = "Medium"
        restriction.Facets.Add(enumerationMedium)

        ' <xs:enumeration value="Large"/>
        Dim enumerationLarge As New XmlSchemaEnumerationFacet()
        enumerationLarge.Value = "Large"
        restriction.Facets.Add(enumerationLarge)

        SizeType.Content = restriction

        schema.Items.Add(SizeType)

        ' <xs:element name="Item">
        Dim elementItem As New XmlSchemaElement()
        elementItem.Name = "Item"

        ' <xs:complexType>
        Dim complexType As New XmlSchemaComplexType()

        ' <xs:attribute name="Size" type="SizeType"/>
        Dim attributeSize As New XmlSchemaAttribute()
        attributeSize.Name = "Size"
        attributeSize.SchemaTypeName = New XmlQualifiedName("SizeType", "")
        complexType.Attributes.Add(attributeSize)

        elementItem.SchemaType = complexType

        schema.Items.Add(elementItem)

        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:simpleType name="SizeType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Small" />
      <xs:enumeration value="Medium" />
      <xs:enumeration value="Large" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="Item">
    <xs:complexType>
      <xs:attribute name="Size" type="SizeType" />
    </xs:complexType>
  </xs:element>
</xs:schema>

建構函式

XmlSchemaEnumerationFacet()

初始化 XmlSchemaEnumerationFacet 類別的新執行個體。

屬性

Annotation

取得或設定 annotation 屬性。

(繼承來源 XmlSchemaAnnotated)
Id

取得或設定字串 ID。

(繼承來源 XmlSchemaAnnotated)
IsFixed

取得或設定資訊,表示這個 Facet 為固定的。

(繼承來源 XmlSchemaFacet)
LineNumber

取得或設定 schema 項目參考之檔案中的行號。

(繼承來源 XmlSchemaObject)
LinePosition

取得或設定 schema 項目參考之檔案中的行位置。

(繼承來源 XmlSchemaObject)
Namespaces

取得或設定 XmlSerializerNamespaces,以便與這個結構描述物件一起使用。

(繼承來源 XmlSchemaObject)
Parent

取得或設定這個 XmlSchemaObject 的父項。

(繼承來源 XmlSchemaObject)
SourceUri

取得或設定載入結構描述之檔案的來源位置。

(繼承來源 XmlSchemaObject)
UnhandledAttributes

取得或設定不屬於目前結構描述之目標命名空間的限定屬性 (Attribute)。

(繼承來源 XmlSchemaAnnotated)
Value

取得或設定 Facet 的 value 屬性。

(繼承來源 XmlSchemaFacet)

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於