XmlSchemaPatternFacet クラス
simpleType 要素に入力できる値の制限を指定します。パターンは、正規表現として指定します。W3C (World Wide Web Consortium) pattern ファセットを表します。
この型のすべてのメンバの一覧については、XmlSchemaPatternFacet メンバ を参照してください。
System.Object
System.Xml.Schema.XmlSchemaObject
System.Xml.Schema.XmlSchemaAnnotated
System.Xml.Schema.XmlSchemaFacet
System.Xml.Schema.XmlSchemaPatternFacet
Public Class XmlSchemaPatternFacet
Inherits XmlSchemaFacet
[C#]
public class XmlSchemaPatternFacet : XmlSchemaFacet
[C++]
public __gc class XmlSchemaPatternFacet : public XmlSchemaFacet
[JScript]
public class XmlSchemaPatternFacet extends XmlSchemaFacet
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
使用例
[Visual Basic, C#, C++] XmlSchemaPatternFacet クラスを使用する例を次に示します。
Imports System
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema as New XmlSchema()
' <xs:simpleType name="ZipCodeType">
Dim ZipCodeType as New XmlSchemaSimpleType()
ZipCodeType.Name = "ZipCodeType"
' <xs:restriction base="xs:string">
Dim restriction as New XmlSchemaSimpleTypeRestriction()
restriction.BaseTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:pattern value="[0-9]{5}(-[0-9]{4})?"/>
Dim pattern as New XmlSchemaPatternFacet()
pattern.Value = "[0-9]{5}(-[0-9]{4})?"
restriction.Facets.Add(pattern)
ZipCodeType.Content = restriction
schema.Items.Add(ZipCodeType)
' <xs:element name="Address">
Dim element as New XmlSchemaElement()
element.Name = "Address"
' <xs:complexType>
Dim complexType as New XmlSchemaComplexType()
' <xs:attribute name="ZipCode" type="ZipCodeType"/>
Dim ZipCodeAttribute as New XmlSchemaAttribute()
ZipCodeAttribute.Name = "ZipCode"
ZipCodeAttribute.SchemaTypeName = new XmlQualifiedName("ZipCodeType", "")
complexType.Attributes.Add(ZipCodeAttribute)
element.SchemaType = complexType
schema.Items.Add(element)
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
Public Shared Sub ValidationCallbackOne(sender as object, args as ValidationEventArgs)
Console.WriteLine(args.Message)
End Sub
End Class
[C#]
using System;
using System.Xml;
using System.Xml.Schema;
class XMLSchemaExamples {
public static void Main() {
XmlSchema schema = new XmlSchema();
// <xs:simpleType name="ZipCodeType">
XmlSchemaSimpleType ZipCodeType = new XmlSchemaSimpleType();
ZipCodeType.Name = "ZipCodeType";
// <xs:restriction base="xs:string">
XmlSchemaSimpleTypeRestriction restriction = new XmlSchemaSimpleTypeRestriction();
restriction.BaseTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:pattern value="[0-9]{5}(-[0-9]{4})?"/>
XmlSchemaPatternFacet pattern = new XmlSchemaPatternFacet();
pattern.Value = "[0-9]{5}(-[0-9]{4})?";
restriction.Facets.Add(pattern);
ZipCodeType.Content = restriction;
schema.Items.Add(ZipCodeType);
// <xs:element name="Address">
XmlSchemaElement element = new XmlSchemaElement();
element.Name = "Address";
// <xs:complexType>
XmlSchemaComplexType complexType = new XmlSchemaComplexType();
// <xs:attribute name="ZipCode" type="ZipCodeType"/>
XmlSchemaAttribute ZipCodeAttribute = new XmlSchemaAttribute();
ZipCodeAttribute.Name = "ZipCode";
ZipCodeAttribute.SchemaTypeName = new XmlQualifiedName("ZipCodeType", "");
complexType.Attributes.Add(ZipCodeAttribute);
element.SchemaType = complexType;
schema.Items.Add(element);
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 ValidationCallbackOne(Object* sender, ValidationEventArgs * args)
{
Console::WriteLine(args -> Message);
}
};
int main()
{
XmlSchema* schema = new XmlSchema();
// <xs:simpleType name=S"ZipCodeType">
XmlSchemaSimpleType* ZipCodeType = new XmlSchemaSimpleType();
ZipCodeType -> Name = S"ZipCodeType";
// <xs:restriction base=S"xs:String*">
XmlSchemaSimpleTypeRestriction* restriction = new XmlSchemaSimpleTypeRestriction();
restriction -> BaseTypeName = new XmlQualifiedName(S"string", S"http://www.w3.org/2001/XMLSchema");
// <xs:pattern value=S"->[0-9] {5}(-->[0-9] {4})?"/>
XmlSchemaPatternFacet* pattern = new XmlSchemaPatternFacet();
pattern -> Value = S"[0-9]{5}(-[0-9]{4})?";
restriction -> Facets->Add(pattern);
ZipCodeType -> Content = restriction;
schema -> Items->Add(ZipCodeType);
// <xs:element name=S"Address">
XmlSchemaElement* element = new XmlSchemaElement();
element -> Name = S"Address";
// <xs:complexType>
XmlSchemaComplexType* complexType = new XmlSchemaComplexType();
// <xs:attribute name=S"ZipCode" type=S"ZipCodeType"/>
XmlSchemaAttribute* ZipCodeAttribute = new XmlSchemaAttribute();
ZipCodeAttribute -> Name = S"ZipCode";
ZipCodeAttribute -> SchemaTypeName = new XmlQualifiedName(S"ZipCodeType", S"");
complexType -> Attributes->Add(ZipCodeAttribute);
element -> SchemaType = complexType;
schema -> Items->Add(element);
schema -> Compile(new ValidationEventHandler(schema, XMLSchemaExamples::ValidationCallbackOne));
XmlNamespaceManager* nsmgr = new XmlNamespaceManager(new NameTable());
nsmgr -> AddNamespace(S"xs", S"http://www.w3.org/2001/XMLSchema");
schema -> Write(Console::Out, nsmgr);
}
[Visual Basic, C#, C++] 前述のコード例に対して生成される XML ファイルを次に示します。
<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="ZipCodeType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{5}(-[0-9]{4})?"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="Address">
<xs:complexType>
<xs:attribute name="ZipCode" type="ZipCodeType"/>
</xs:complexType>
</xs:element>
</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 内)