schema

MSXML 5.0 SDK

Microsoft XML Core Services (MSXML) 5.0 for Microsoft Office - XML Schemas

schema

Contains the definition of a schema.

<schema
  attributeFormDefault = (qualified | unqualified): unqualified
  blockDefault = (#all | List of (extension | restriction | substitution) : ''
  elementFormDefault = (qualified | unqualified): unqualified
  finalDefault = (#all | List of (extension | restriction | list | 
union): ''
  id = ID
  targetNamespace = anyURI
  version = token
  xml:lang = language
  {any attributes with non-schema Namespace}…>
Content: ((include | import | redefine | annotation)*, (((simpleType | 
complexType | group | attributeGroup) | element | attribute | notation), 
annotation*)*)
</schema>

Attributes

attributeFormDefault
The form for attributes declared in the target namespace of this schema. The value must be one of the following strings: qualified or unqualified. The default is unqualified.

If the value is unqualified, attributes from the target namespace are not required to be qualified with the namespace prefix.

If the value is qualified, attributes from the target namespace must be qualified with the namespace prefix.

This value is the global default for all attributes declared in the target namespace. Individual attributes can override this setting for their local scope using the form attribute.

Optional.

blockDefault
The type of derivation. The blockDefault attribute sets the default value of the block attribute on element and complexType elements in the target namespace of this schema. The block attribute prevents a complex type (or element) that has the specified type of derivation from being used in place of the inherited complex type (or element). This value can contain #all or a list that is a subset of extension, restriction, or substitution.

extension Prevents complex types derived by extension from being used in place of this complex type.
restriction Prevents complex types derived by restriction from being used in place of this complex type.
substitution Prevents substitution of elements. (An element can declare itself a substitution for another element by specifying the name of the other element in its substitutionGroup attribute.)
#all Prevents all derived complex types from being used in place of this complex type.

Optional.

elementFormDefault
The form for elements declared in the target namespace of this schema. The value must be one of the following strings: qualified or unqualified. The default is unqualified.

If the value is unqualified, elements from the target namespace are not required to be qualified with the namespace prefix.

If the value is qualified, elements from the target namespace must be qualified with the namespace prefix.

This value is the global default for all elements declared in the target namespace. Individual elements can override this setting for their local scope using the form attribute.

Optional.

finalDefault
The type of derivation. The finalDefault attribute sets the default value of the final attribute on element, simpleType, and complexType elements in the target namespace of this schema. The final attribute prevents the specified type of derivation of an element, simpleType, or complexType element. For element and complexType elements, this value can contain #all or a list that is a subset of extension or restriction. For simpleType elements, this value can additionally contain list and union.

extension By default, elements in this schema cannot be derived by extension. Applies to element and complexType elements only.
restriction Prevents derivation by restriction.
list Prevents derivation by list. Applies to simpleType elements only.
union Prevents derivation by union. Applies to simpleType elements only.
#all #all. By default, elements in this schema cannot be derived by any method.

Optional.

id
The ID of this element. The id value must be of type ID and be unique within the document containing this element.

Optional.

targetNamespace
The URI reference of the namespace of this schema. A prefix for the namespace can also be assigned. If no prefix is assigned, the schema components of the namespace can be used with unqualified references.

Optional.

version
The version of the schema.

Optional.

xml:lang
The indicator of the language used in the contents.

Optional.

Element Information

Number of occurrences One time
Parent elements (No parent elements)
Content include, import, annotation, redefine

attribute, attributeGroup, element, group, notation, simpleType, complexType

Other The include, import, and redefine elements must come before the other elements — except for annotation element, which can appear anywhere.

Remarks

The schema element is the document element (the top-level element) in a schema definition.

The namespaces specified using the xmlns attribute must include the namespace for the schema-defining elements and attributes (schema, element, and so on). Any prefix can be used, but it is convenient to make the schema namespace the default namespace to avoid having to use a prefix on every XML Schema element.

The targetNamespace is the namespace of all schema components in this schema as well as any schemas included using the include element. (Included schemas must have the same target namespace as the containing schema or have no target namespace at all.) In the following example, the schema components (element name, type) in the http://www.w3.org/2001/XMLSchema namespace are unqualified and those for http://tempuri.org/myschema (mydecimal) are qualified with the msc prefix.

<xs:schema 
     xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:msc=”http://tempuri.org/myschema”
     targetNamespace=”http://tempuri.org/myschema”>
  <xs:element name="Price" type="msc:mydecimal"/>
</xs:schema>

For XML Schema, the namespace is the following:

http://www.w3.org/2001/XMLSchema

In addition, the schema element should also contain namespace declarations for any other schemas that it uses.

Example

The following schema uses the XML Schema namespace as the default namespace and defines the target namespace for the schema as http://mynamespace/myschema.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
         targetNamespace="http://mynamespace/myschema">
  <!--Put schema content here  -->
</xs:schema>

See Also

XML Schema Reference (XSD) | XML Schema Elements | include

For more information, see the W3C XML Schema Part 1: Structures Recommendation at http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-schema.