다음을 통해 공유


System Definition Model Design Guidelines

System Definition Model Design Guidelines

The following guidelines are useful when structuring a system definition model.

The supported XSD types are also listed.

  • It is necessary to check that there are no cycles in the document import relationships. This restriction is imposed by the compiler and often means that some time must be spent in mapping out the dependencies between definitions.

  • It is important to note that the document is the unit of versioning. This means that when a new version of a document is produced, all the types in that document now have new versions.

  • Here are some suggestions on how to structure building blocks:

    • Factor out endpoints because they are usually common to more than one system.
    • Factor each system into its own document. Systems usually represent a definition that is consumed independently of other definitions.
    • Factor out logical resource models into their own document. It is common for all the resource definitions that describe a particular resource to version together.
    • Consistently define each hosting relationships either with the corresponding guest definition or in a separate document created for the purpose of holding all hosting relationships. The goal in the first case is to construct an import tree that follows the hosting relationships from guest to host, while in the second case, the goal is to factor out hosting relationships as a separate group.
    • Consistently define each containment relationships with its parent or combine all containment relationships in a separate document. Again, this is primarily a convention to avoid circular references.
    • Factor out common code such as setting definitions, flow, and constraints into separate documents rather that creating import references between system models. This is primarily to simplify imports and to ensure that system models are independent.
  • These points are useful to bear in mind:

    • Inheritance

      Only inheritance relationships for resources are given consideration by the manager generator. While resource inheritance relationships are constructed if present, they are not used either to define data or drive behavior.

    • Hosting relationships

      Except for endpoints, there is no Distributed System Designer UI for resolving ambiguity. For example, the user does not have an opportunity to select the hosting relationship for a resource if that resource may be hosted by more than one entity.

Support for XSD Types

Most elements in the XSD data model are supported by the manager generator. It returns appropriate errors when unsupported elements are encountered. Cross-document schema references are supported.

The following table lists which XSD features are supported in custom definitions.

Supported XSD feature Type
xs:attribute Attribute
xs:nillable Attribute
xs:restriction (simpleType) :Enumeration Simple Type
xs:restriction (simpleType) :Pattern Simple Type
xs:sequence Complex Type

The following table lists which XSD features are not supported in custom definitions.

Unsupported XSD feature Type
xs:all Complex Type
xs:any Element
xs:choice Complex Type
xs:extension (complexContent) Complex Type
xs:list Simple Type
xs:restriction (complexContent) Complex Type
xs:union Simple Type

Send comments about this topic to Microsoft

Build date: 10/2/2007