Creating a Schema Programmatically

As you already know, xs:schema is the root element of an XSD document. XmlSchema is the type that represents the xs:schema element.

XmlSchema is a subclass of XmlSchemaObject, whose other subclasses are XmlSchemaAnnotated, XmlSchemaAnnotation, XmlSchemaAppInfo, XmlSchemaDocumentation, and XmlSchemaExternal. Each of these subclasses represents a specific type of XML Schema element, and some of them have their own subclasses. The .NET XmlSchema type hierarchy is shown in Figure 8-1.

XmlSchema type hierarchy
Figure 8-1. XmlSchema type hierarchy

Table 8-4 shows each XML Schema element name with its corresponding .NET type. In some cases, more than one .NET class is used for the same XML Schema element; typically, this is the case when the same element has different behavior in different contexts. There are many more types in the System.Xml.Schema assembly that do not correspond directly to an XML Schema element, and they are listed in the assembly reference in Chapter 17.

Table 8-4. XML Schema element names and .NET types

XML Schema element name

.NET type

xs:all

XmlSchemaAll

xs:annotation

XmlSchemaAnnotation

xs:any

XmlSchemaAny

xs:anyAttribute

XmlSchemaAnyAttribute

xs:appinfo

XmlSchemaAppInfo

xs:attribute

XmlSchemaAttribute

xs:attributeGroup

XmlSchemaAttributeGroup

XmlSchemaAttributeGroupRef

xs:choice

XmlSchemaChoice ...

Get .NET & XML now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.