
XML DTD for DCP
Welcome to the DCP XML Document Type Definition. XML is a data format for
structured document interchange on the Web. It is called the "extensible markup
language" because it is not a fixed format like HTML. XML is designed to enable the
use of SGML on the World Wide Web. XML is not a single markup language: it is a metalanguage that allows an author to design a markup language. A regular markup language
defines a way to describe information in a certain class of documents (for example, HTML).
With XML, authors can define their own customized markup language for many classes of
documents. These customized languages are defined by a Document Type Definition file
or DTD.
The DCP Specification includes an XML Document Type Definition for DCP. It can be used to
describe device information such as properties, events and object models. This section is
a reference for the XML DTD for DCP.
|
<!ELEMENT DCP (ObjectModel|Data)*>
<!ATTLIST DCP
Version NMTOKEN "1.0"><!ELEMENT ObjectModel (Label?,Description?,Map?,Instances?)?>
<!ATTLIST ObjectModel
URL CDATA #IMPLIED>
<!ELEMENT Data (dObject|dProperty|dMethod|dEvent)*>
<!ATTLIST Data
URL CDATA #IMPLIED>
<!ELEMENT dObject (ParamValue*,(dObject|dProperty|dMethod|dEvent)*)?>
<!ATTLIST dObject
Value CDATA #IMPLIED
Href CDATA #IMPLIED
Name NMTOKEN #REQUIRED
SessionID NMTOKEN #IMPLIED
TransactionID NMTOKEN #IMPLIED>
<!ELEMENT ParamValue EMPTY>
<!ATTLIST ParamValue
Name NMTOKEN #REQUIRED
Value CDATA #REQUIRED>
<!ELEMENT dProperty EMPTY>
<!ATTLIST dProperty
Name NMTOKEN #REQUIRED
Value CDATA #IMPLIED
Href CDATA #IMPLIED
SessionID NMTOKEN #IMPLIED
TransactionID NMTOKEN #IMPLIED>
<!ELEMENT dMethod (dArg|dReturnValue)*>
<!ATTLIST dMethod
Name NMTOKEN #REQUIRED
SessionID NMTOKEN #IMPLIED
TransactionID NMTOKEN #IMPLIED>
<!ELEMENT dArg EMPTY>
<!ATTLIST dArg
Name NMTOKEN #REQUIRED
Value CDATA #IMPLIED
Href CDATA #IMPLIED>
<!ELEMENT dReturnValue EMPTY>
<!ATTLIST dReturnValue
Name NMTOKEN #REQUIRED
Value CDATA #IMPLIED
Href CDATA #IMPLIED>
<!ELEMENT dEvent (dEventParameter)*>
<!ATTLIST dEvent
Name NMTOKEN #REQUIRED
SessionID NMTOKEN #IMPLIED
TransactionID NMTOKEN #IMPLIED>
<!ELEMENT dEventParameter EMPTY>
<!ATTLIST dEventParameter
Name NMTOKEN #REQUIRED
Value CDATA #IMPLIED
Href CDATA #IMPLIED>
<!ELEMENT Argument (Label?,Description?,Rules*)?>
<!ATTLIST Argument
Name NMTOKEN #REQUIRED
Type (STRING|INT|FLOAT|BLOB|DATE|CHAR|MIME) #REQUIRED
MimeType NMTOKEN #IMPLIED
Size NMTOKEN #IMPLIED>
<!ELEMENT Label (#PCDATA)*>
<!ELEMENT Description (#PCDATA)*>
<!ELEMENT Rules (Item|Range)+>
<!ELEMENT Item (Label?,Description?)?>
<!ATTLIST Item
Include (Y|N) "Y"
Value CDATA #REQUIRED>
<!ELEMENT Range (Label?,Description?)?>
<!ATTLIST Range
Min CDATA #REQUIRED
Max CDATA #REQUIRED
Include (Y|N) "Y">
<!ELEMENT Property (Label?,Description?,Rules*)?>
<!ATTLIST Property
Name NMTOKEN #REQUIRED
Permissions (G|S|GS) "G"
Type (STRING|INT|FLOAT|BLOB|DATE|CHAR|MIME) #REQUIRED
MimeType NMTOKEN #IMPLIED
Size NMTOKEN #IMPLIED>
<!ELEMENT ReturnValue (Label?,Description?,Rules*)?>
<!ATTLIST ReturnValue
Name NMTOKEN #REQUIRED
Type (STRING|INT|FLOAT|BLOB|DATE|CHAR|MIME) #REQUIRED
MimeType NMTOKEN #IMPLIED
Size NMTOKEN #IMPLIED>
<!ELEMENT Attribute (Label?,Description?)?>
<!ATTLIST Attribute
Name NMTOKEN #REQUIRED
Value CDATA #IMPLIED>
<!ELEMENT Map (Object|Property|Method|Event|Attribute)*>
<!ELEMENT Object (Label?,Description?,InstanceParameter*,(Object|Property|Method|Event|Attribute)*)?>
<!ATTLIST Object
Name NMTOKEN #REQUIRED
DeviceHost (Y|N) "N"
Device (Y|N) "N">
<!ELEMENT InstanceParameter (Label?,Description?,Rules*)?>
<!ATTLIST InstanceParameter
Name NMTOKEN #REQUIRED
Type (STRING|INT|FLOAT|BLOB|DATE|CHAR|MIME) #REQUIRED
MimeType NMTOKEN #IMPLIED
Size NMTOKEN #IMPLIED>
<!ELEMENT Method (Label?,Description?,(Argument|ReturnValue)*)?>
<!ATTLIST Method
Name NMTOKEN #REQUIRED>
<!ELEMENT Event (Label?,Description?,EventParameter*)?>
<!ATTLIST Event
Name NMTOKEN #REQUIRED>
<!ELEMENT EventParameter (Label?,Description?,Rules*)?>
<!ATTLIST EventParameter
Name NMTOKEN #REQUIRED
Type (STRING|INT|FLOAT|BLOB|DATE|CHAR|MIME) #REQUIRED
MimeType NMTOKEN #IMPLIED
Size NMTOKEN #IMPLIED>
<!ELEMENT Instances (iObject)*>
<!ELEMENT iObject (ParamValue*,iObject*)?>
<!ATTLIST iObject
Name NMTOKEN #REQUIRED>
|