XmlSchemaAttribute クラス
属性とは、他のドキュメント要素の追加情報を提供するものです。属性タグは、スキーマの documents 要素のタグの中に入れ子します。XML ドキュメントでは、要素の開始タグの名前付き項目として属性が表示されます。W3C (World Wide Web Consortium) attribute 要素を表します。
この型のすべてのメンバの一覧については、XmlSchemaAttribute メンバ を参照してください。
System.Object
System.Xml.Schema.XmlSchemaObject
System.Xml.Schema.XmlSchemaAnnotated
System.Xml.Schema.XmlSchemaAttribute
Public Class XmlSchemaAttribute
Inherits XmlSchemaAnnotated
[C#]
public class XmlSchemaAttribute : XmlSchemaAnnotated
[C++]
public __gc class XmlSchemaAttribute : public XmlSchemaAnnotated
[JScript]
public class XmlSchemaAttribute extends XmlSchemaAnnotated
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
属性宣言は、グローバル スコープを持つ schema 要素の子要素として、または複合型定義内に存在できます。複合型の場合、属性宣言は、ローカル宣言またはグローバル スコープを持つ属性の参照として存在できます。グローバル属性宣言およびローカル属性宣言は、両方とも既存の単純型を参照するオプションの型属性を持ちます。オプションの型属性を使用しない場合は、グローバル属性宣言またはローカル属性宣言でローカルな単純型を定義する必要があります。
使用例
[Visual Basic, C#, C++] attribute 要素を作成する例を次に示します。
Option Explicit
Option Strict
Imports System
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema As New XmlSchema()
' <xs:attribute name="mybaseattribute">
Dim attributeBase As New XmlSchemaAttribute()
schema.Items.Add(attributeBase)
attributeBase.Name = "mybaseattribute"
' <xs:simpleType>
Dim simpleType As New XmlSchemaSimpleType()
attributeBase.SchemaType = simpleType
' <xs:restriction base="integer">
Dim restriction As New XmlSchemaSimpleTypeRestriction()
simpleType.Content = restriction
restriction.BaseTypeName = New XmlQualifiedName("integer", "http://www.w3.org/2001/XMLSchema")
' <xs:maxInclusive value="1000"/>
Dim maxInclusive As New XmlSchemaMaxInclusiveFacet()
restriction.Facets.Add(maxInclusive)
maxInclusive.Value = "1000"
' <xs:complexType name="myComplexType">
Dim complexType As New XmlSchemaComplexType()
schema.Items.Add(complexType)
complexType.Name = "myComplexType"
' <xs:attribute ref="mybaseattribute"/>
Dim attributeBaseRef As New XmlSchemaAttribute()
complexType.Attributes.Add(attributeBaseRef)
attributeBaseRef.RefName = New XmlQualifiedName("mybaseattribute")
schema.Compile(AddressOf ValidationCallbackOne)
Dim nsmgr As New XmlNamespaceManager(New NameTable())
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
schema.Write(Console.Out, nsmgr)
End Sub 'Main
Public Shared Sub ValidationCallbackOne(sender As Object, args As ValidationEventArgs)
Console.WriteLine(args.Message)
End Sub 'ValidationCallbackOne
End Class 'XMLSchemaExamples
[C#]
using System;
using System.Xml;
using System.Xml.Schema;
class XMLSchemaExamples {
public static void Main() {
XmlSchema schema = new XmlSchema();
// <xs:attribute name="mybaseattribute">
XmlSchemaAttribute attributeBase = new XmlSchemaAttribute();
schema.Items.Add(attributeBase);
attributeBase.Name = "mybaseattribute";
// <xs:simpleType>
XmlSchemaSimpleType simpleType = new XmlSchemaSimpleType();
attributeBase.SchemaType = simpleType;
// <xs:restriction base="integer">
XmlSchemaSimpleTypeRestriction restriction = new XmlSchemaSimpleTypeRestriction();
simpleType.Content = restriction;
restriction.BaseTypeName = new XmlQualifiedName("integer", "http://www.w3.org/2001/XMLSchema");
// <xs:maxInclusive value="1000"/>
XmlSchemaMaxInclusiveFacet maxInclusive = new XmlSchemaMaxInclusiveFacet();
restriction.Facets.Add(maxInclusive);
maxInclusive.Value = "1000";
// <xs:complexType name="myComplexType">
XmlSchemaComplexType complexType = new XmlSchemaComplexType();
schema.Items.Add(complexType);
complexType.Name = "myComplexType";
// <xs:attribute ref="mybaseattribute"/>
XmlSchemaAttribute attributeBaseRef = new XmlSchemaAttribute();
complexType.Attributes.Add(attributeBaseRef);
attributeBaseRef.RefName = new XmlQualifiedName("mybaseattribute");
schema.Compile(new ValidationEventHandler(ValidationCallbackOne));
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
schema.Write(Console.Out, nsmgr);
}
public static void ValidationCallbackOne(object sender, ValidationEventArgs args) {
Console.WriteLine(args.Message);
}
}
[C++]
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
__gc class XMLSchemaExamples {
public:
static void main() {
XmlSchema* schema = new XmlSchema();
// <xs:attribute name="mybaseattribute">
XmlSchemaAttribute* attributeBase = new XmlSchemaAttribute();
schema->Items->Add(attributeBase);
attributeBase->Name = S"mybaseattribute";
// <xs:simpleType>
XmlSchemaSimpleType* simpleType = new XmlSchemaSimpleType();
attributeBase->SchemaType = simpleType;
// <xs:restriction base="integer">
XmlSchemaSimpleTypeRestriction* restriction = new XmlSchemaSimpleTypeRestriction();
simpleType->Content = restriction;
restriction->BaseTypeName = new XmlQualifiedName(S"integer", S"http://www.w3.org/2001/XMLSchema");
// <xs:maxInclusive value="1000"/>
XmlSchemaMaxInclusiveFacet* maxInclusive = new XmlSchemaMaxInclusiveFacet();
restriction->Facets->Add(maxInclusive);
maxInclusive->Value = S"1000";
// <xs:complexType name="myComplexType">
XmlSchemaComplexType* complexType = new XmlSchemaComplexType();
schema->Items->Add(complexType);
complexType->Name = S"myComplexType";
// <xs:attribute ref="mybaseattribute"/>
XmlSchemaAttribute* attributeBaseRef = new XmlSchemaAttribute();
complexType->Attributes->Add(attributeBaseRef);
attributeBaseRef->RefName = new XmlQualifiedName(S"mybaseattribute");
schema->Compile(new ValidationEventHandler(0, ValidationCallbackOne));
XmlNamespaceManager* nsmgr = new XmlNamespaceManager(new NameTable());
nsmgr->AddNamespace(S"xs", S"http://www.w3.org/2001/XMLSchema");
schema->Write(Console::Out,nsmgr);
}
static void ValidationCallbackOne(Object* /*sender*/, ValidationEventArgs* args) {
Console::WriteLine(args->Message);
}
};
int main()
{
XMLSchemaExamples::main();
}
[Visual Basic, C#, C++] 前述のコード例に対して生成される XML ファイルを次に示します。
<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:attribute name="mybaseattribute">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:maxInclusive value="1000" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:complexType name="myComplexType">
<xs:attribute ref="mybaseattribute" />
</xs:complexType>
</xs:schema>
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Xml.Schema
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: System.Xml (System.Xml.dll 内)