5 Xaml Schema Information Set

A Xaml Schema is an abstract definition of a set of Xaml Instances. A Xaml Infoset is said to be an instance of a Xaml Schema if it conforms to all of the rules for well-formedness and validity in Section 4, “Xaml Information Set”.

This specification does not mandate a representation or format for a Xaml Schema. Instead, it defines an abstract data model called the Xaml Schema Information Set, or ‘Schema Infoset’ for short, which defines the elements that make up a Xaml Schema.

A Xaml Schema Information Set can contain five kinds of items. These are listed in Table 2.

Table 2: Xaml Schema Information Set Item Kinds

Item Kind

Purpose (non-normative)

Schema Information Item

Identifies a schema, and defines which information items constitute that schema’s definition.

XamlType Information Item

Describes a type of element that instances of this schema may contain.

XamlMember Information Item

Describes a member that may be applied to elements in instances of this schema.

Text Syntax Information Item

Describes the valid textual representations of the values of a particular member or type.

Constructor Information Item

Describes the available constructor forms for a type.

The information items that make up the Xaml Schema Information Set have identity. For example, given two XamlMember Information Items, it is meaningful to ask if their [value type] properties each refer to the same XamlType Information Item (or more informally, whether the two members have the same type). Since this specification does not mandate any particular representation for schema infosets, implementations are free to represent this in any way. For example, a programming system might choose to represent item identity through object identity where such a concept is supported; a serialized representation might choose to add identifiers that do not correspond directly to infoset properties purely to handle item identity.

The following sections describe the data properties that make up each of the information item types. These sections also define constraints a Xaml Schema must meet.

In some cases, notes are provided to describe the purpose of certain data properties in more detail. This is done in situations where the normative interpretation of these properties is defined in other sections, but where the intended meaning of the properties would be hard to infer. These notes are provided purely as an aid to understanding, and are marked as ‘non-normative’ to indicate that they does not constitute a formal part of the Xaml Schema Infoset specification. The ‘Purpose’ column of each table defining an information item has a similar role, and is also non-normative.