Annex B: CWMP Device Type XML Schema 
B.1 Introduction 
The CWMP Device Type XML Schema [4], or DT Schema, is used for describing a device’s supported data model.
DT Schema instance documents can contain the following:
Imports (from DM Schema instance documents) of Root or Service Object definitions
Declarations of which features of imported Root or Service Objects are supported
DT Schema instance documents cannot contain definitions of Root or Service Objects. All such definitions have to reside in DM Schema instance documents.
B.2 Normative Information 
It is possible to create instance documents that conform to the DT Schema but nevertheless are not valid device type specifications. This is because it is not possible to specify all the normative device type specification requirements using the XML Schema language. Therefore, the schema contains additional requirements written using the usual normative language. Instance documents that conform to the DT Schema and meet these additional requirements are referred to as DT Instances.
The question of the location of the definitive normative information therefore arises. The answer is as follows:
All the normative information in the main part of the document remains normative.
The DT Schema, and the additional requirements therein, are normative. Some of these additional requirements are duplicated (for emphasis) in this Annex.
The DT Schema references additional material in this Annex. Such material is normative.
If the DT Schema conflicts with a normative requirement in the main part of the document, this is an error in the DT Schema, and the requirement in the main part of the document takes precedence.
B.2.1 Importing DM Instances 
DM Instances are imported using the top-level import element, which differs from the DM Schema import element in that only data types and models can be imported (components cannot be imported because they are not used in DT Instances).
Note – the rules for importing DM Instances into DT Instances are consistent with those given in A.2.1 for importing DM Instances into other DM Instances. The only difference is an additional rule governing the use, when available, of the DT Instance URL.
The DT Schema specifies that the DM Instance is located via the file attribute.
The rules governing the file attribute’s value and its use for locating the DM Instance are as follows:
It MUST be a URL adhering to RFC 3986 [9].
If the URL includes a scheme, it MUST be http, https or ftp.
If the URL includes an authority, it MUST NOT include credentials.
For standard BBF DM Instances, the rules that apply to the filename part (final path segment) of the A.2.1.1 BBFURL MUST be applied to the filename part of this URL. This means that the corrigendum number can be omitted in order to refer to the latest corrigendum.
If the URL is a relative reference, processing tools MUST apply their own logic, e.g. apply a search path. If a DT Instance URL is available, the relative reference MUST be interpreted relative to the DT Instance URL.
B.2.2 Features 
The feature element provides a simple way for a DT Instance to indicate whether a given feature is supported. The current set of standard features is as follows:
Feature | Description |
---|---|
DNSClient | Device contains a DNS client. |
DNSServer | Device contains a DNS server. |
Firewall | Device contains a firewall. |
IPv6 | Device supports IPv6. |
NAT | Device supports NAT. |
Router | Device is a router. |
Vendor-specific features MAY be supported, and if so the feature name MUST begin with X_<VENDOR>_
, where <VENDOR>
MUST be as defined in Section 3.3.
This example feature declaration illustrates the use of annotation:
<feature name="DNSServer">
<annotation>Supports a DNS Server and XYZ.</annotation>
</feature>
B.2.2.1 DT Features Schema 
In order to make it easy to add new features, standard feature names are defined in a separate DT Features Schema that is imported by the DT Schema. The DT Features Schema is unversioned, so the DT Schema need not be changed when new standard feature names are added. In order to preserve backwards compatibility, standard feature names, once added, MUST NOT ever be deleted.
The normative version of the DT Features Schema can be found at http://www.broadband-forum.org/cwmp/cwmp-devicetype-features.xsd. Please be aware that a new version of the DT Features Schema might be published at any time, in which case the version referenced in this document would become out of date. Any conflict MUST be resolved in favor of the normative version on the web site.
B.3 DT Schema 
The normative version of the DT Schema can be found at http://www.broadband-forum.org/cwmp/cwmp-devicetype-1-3.xsd. Please be aware that a new version of the DT Schema might be published at any time, in which case the version referenced in this document would become out of date. Any conflict MUST be resolved in favor of the normative version on the web site.