DTD for Data Definition

The following example shows the DTD for the provisioning XML files :

 <!-- Root element. Gives the name of the data type (i.e., ForwardAllCalls). This name must be unique. --> <!ELEMENT DataDefn (Category?, Key*, (DBEntry | Border)*)> <!ATTLIST DataDefn name CDATA #REQUIRED > <!-- Optional set of nested categories provide a hierarchy for categorizing this data type. For example, the DataDefn name could be ForwardAllCalls and the top-level Category name could be Features. Nesting child categories within the top level allows a finer granularity of distinction between different types of Feature. --> <!ELEMENT Category (Category*)> <!ATTLIST Category name CDATA #REQUIRED > <!-- Gives one or more DBEntries that this data type is keyed on. For example, a server would have a Host Key and a Port Key. PServer uses the Key information to build database tables. --> <!ELEMENT Key (#PCDATA)> <!-- DBEntry is an entry in the database. PServer uses this to build the database table for this data type. The database field will be called by the name attribute. The type attribute will be either a Schema Type or Xml. If it is Xml, the database will store it as a blob. The enabled attribute is set to true if the field can be edited. --> <!ELEMENT DBEntry (Label?,Tooltip?,Alert?,Default?,Required?,MinInclusive?,MaxInclusive?,Content?, Column*,Condition*,Border?)> <!ATTLIST DBEntry name CDATA #REQUIRED type ( String | Integer | Boolean | Port | Decimal | Date | Time | XML ) "String" ...

Get Practical VoIP Using VOCAL now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.