XmlSchemaDocumentation 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示 documentation 由万维网联盟 (W3C) 指定的 XML 架构中的元素。 此类指定要在一个 annotation中由人类读取或使用的信息。
public ref class XmlSchemaDocumentation : System::Xml::Schema::XmlSchemaObject
public class XmlSchemaDocumentation : System.Xml.Schema.XmlSchemaObject
type XmlSchemaDocumentation = class
inherit XmlSchemaObject
Public Class XmlSchemaDocumentation
Inherits XmlSchemaObject
- 继承
示例
以下示例创建 documentation 元素。
using System;
using System.Xml;
using System.Xml.Schema;
class XMLSchemaExamples
{
public static void Main()
{
XmlSchema schema = new XmlSchema();
// <xs:simpleType name="northwestStates">
XmlSchemaSimpleType simpleType = new XmlSchemaSimpleType();
simpleType.Name = "northwestStates";
schema.Items.Add(simpleType);
// <xs:annotation>
XmlSchemaAnnotation annNorthwestStates = new XmlSchemaAnnotation();
simpleType.Annotation = annNorthwestStates;
// <xs:documentation>States in the Pacific Northwest of US</xs:documentation>
XmlSchemaDocumentation docNorthwestStates = new XmlSchemaDocumentation();
annNorthwestStates.Items.Add(docNorthwestStates);
docNorthwestStates.Markup = TextToNodeArray("States in the Pacific Northwest of US");
// <xs:restriction base="xs:string">
XmlSchemaSimpleTypeRestriction restriction = new XmlSchemaSimpleTypeRestriction();
simpleType.Content = restriction;
restriction.BaseTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:enumeration value="WA">
XmlSchemaEnumerationFacet enumerationWA = new XmlSchemaEnumerationFacet();
restriction.Facets.Add(enumerationWA);
enumerationWA.Value = "WA";
// <xs:annotation>
XmlSchemaAnnotation annWA = new XmlSchemaAnnotation();
enumerationWA.Annotation = annWA;
// <xs:documentation>Washington</documentation>
XmlSchemaDocumentation docWA = new XmlSchemaDocumentation();
annWA.Items.Add(docWA);
docWA.Markup = TextToNodeArray("Washington");
// <xs:enumeration value="OR">
XmlSchemaEnumerationFacet enumerationOR = new XmlSchemaEnumerationFacet();
restriction.Facets.Add(enumerationOR);
enumerationOR.Value = "OR";
// <xs:annotation>
XmlSchemaAnnotation annOR = new XmlSchemaAnnotation();
enumerationOR.Annotation = annOR;
// <xs:documentation>Oregon</xs:documentation>
XmlSchemaDocumentation docOR = new XmlSchemaDocumentation();
annOR.Items.Add(docOR);
docOR.Markup = TextToNodeArray("Oregon");
// <xs:enumeration value="ID">
XmlSchemaEnumerationFacet enumerationID = new XmlSchemaEnumerationFacet();
restriction.Facets.Add(enumerationID);
enumerationID.Value = "ID";
// <xs:annotation>
XmlSchemaAnnotation annID = new XmlSchemaAnnotation();
enumerationID.Annotation = annID;
// <xs:documentation>Idaho</xs:documentation>
XmlSchemaDocumentation docID = new XmlSchemaDocumentation();
annID.Items.Add(docID);
docID.Markup = TextToNodeArray("Idaho");
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);
}
public static XmlNode[] TextToNodeArray(string text)
{
XmlDocument doc = new XmlDocument();
return new XmlNode[1] {
doc.CreateTextNode(text)};
}
}
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema As New XmlSchema()
' <xs:simpleType name="northwestStates">
Dim simpleType As New XmlSchemaSimpleType()
simpleType.Name = "northwestStates"
schema.Items.Add(simpleType)
' <xs:annotation>
Dim annNorthwestStates As New XmlSchemaAnnotation()
simpleType.Annotation = annNorthwestStates
' <xs:documentation>States in the Pacific Northwest of US</xs:documentation>
Dim docNorthwestStates As New XmlSchemaDocumentation()
annNorthwestStates.Items.Add(docNorthwestStates)
docNorthwestStates.Markup = TextToNodeArray("States in the Pacific Northwest of US")
' <xs:restriction base="xs:string">
Dim restriction As New XmlSchemaSimpleTypeRestriction()
simpleType.Content = restriction
restriction.BaseTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:enumeration value="WA">
Dim enumerationWA As New XmlSchemaEnumerationFacet()
restriction.Facets.Add(enumerationWA)
enumerationWA.Value = "WA"
' <xs:annotation>
Dim annWA As New XmlSchemaAnnotation()
enumerationWA.Annotation = annWA
' <xs:documentation>Washington</documentation>
Dim docWA As New XmlSchemaDocumentation()
annWA.Items.Add(docWA)
docWA.Markup = TextToNodeArray("Washington")
' <xs:enumeration value="OR">
Dim enumerationOR As New XmlSchemaEnumerationFacet()
restriction.Facets.Add(enumerationOR)
enumerationOR.Value = "OR"
' <xs:annotation>
Dim annOR As New XmlSchemaAnnotation()
enumerationOR.Annotation = annOR
' <xs:documentation>Oregon</xs:documentation>
Dim docOR As New XmlSchemaDocumentation()
annOR.Items.Add(docOR)
docOR.Markup = TextToNodeArray("Oregon")
' <xs:enumeration value="ID">
Dim enumerationID As New XmlSchemaEnumerationFacet()
restriction.Facets.Add(enumerationID)
enumerationID.Value = "ID"
' <xs:annotation>
Dim annID As New XmlSchemaAnnotation()
enumerationID.Annotation = annID
' <xs:documentation>Idaho</xs:documentation>
Dim docID As New XmlSchemaDocumentation()
annID.Items.Add(docID)
docID.Markup = TextToNodeArray("Idaho")
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
Public Shared Function TextToNodeArray(ByVal text As String) As XmlNode()
Dim doc As New XmlDocument()
Dim nodeArray(1) As XmlNode
nodeArray(0) = doc.CreateTextNode(text)
TextToNodeArray = nodeArray
End Function
End Class
为前面的代码示例生成以下 XML 文件。
<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="northwestStates">
<xs:annotation>
<xs:documentation>States in the Pacific Northwest of US</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="WA">
<xs:annotation>
<xs:documentation>Washington</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="OR">
<xs:annotation>
<xs:documentation>Oregon</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ID">
<xs:annotation>
<xs:documentation>Idaho</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:schema>
注解
在验证中未使用类中 XmlSchemaDocumentation 提供的信息。 但是,它提供了一种标准化的方法,用于提供可由工具检索的信息。
构造函数
| 名称 | 说明 |
|---|---|
| XmlSchemaDocumentation() |
初始化 XmlSchemaDocumentation 类的新实例。 |
属性
| 名称 | 说明 |
|---|---|
| Language |
获取或设置 |
| LineNumber |
获取或设置元素引用的文件 |
| LinePosition |
获取或设置元素引用的文件中 |
| Markup |
获取或设置表示文档子节点的 |
| Namespaces |
获取或设置 XmlSerializerNamespaces 要用于此架构对象。 (继承自 XmlSchemaObject) |
| Parent |
获取或设置此 XmlSchemaObject对象的父级。 (继承自 XmlSchemaObject) |
| Source |
获取或设置信息的统一资源标识符(URI)源。 |
| SourceUri |
获取或设置加载架构的文件的源位置。 (继承自 XmlSchemaObject) |
方法
| 名称 | 说明 |
|---|---|
| Equals(Object) |
确定指定的对象是否等于当前对象。 (继承自 Object) |
| GetHashCode() |
用作默认哈希函数。 (继承自 Object) |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| MemberwiseClone() |
创建当前 Object的浅表副本。 (继承自 Object) |
| ToString() |
返回一个表示当前对象的字符串。 (继承自 Object) |