First commit
[anna.git] / include / anna / diameter / stack / dictionary.dtd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Diameter dictionary DTD -->
3
4 <!ELEMENT dictionary (format*, vendor*, avp*, command*)>
5 <!ATTLIST dictionary name CDATA #REQUIRED>
6 <!--
7    Dictionary definitions
8
9    name: Dictionary name
10 -->
11
12 <!ELEMENT format EMPTY>
13 <!ATTLIST format name CDATA #REQUIRED parent-type ( OctetString | Integer32 | Integer64 | Unsigned32 | Unsigned64 | Float32 | Float64 ) #REQUIRED>
14 <!--
15    Format record
16
17    name:        Format type unique name
18    parent-type: Format parent type within diameter basics: OctetString, Integer32, Integer64, Unsigned32, Unsigned64, Float32, Float64
19 -->
20
21 <!ELEMENT vendor EMPTY>
22 <!ATTLIST vendor name CDATA #REQUIRED code CDATA #REQUIRED>
23 <!--
24    Vendor record
25
26    name: Vendor unique name
27    code: Vendor numeric code
28 -->
29
30 <!ELEMENT avp (single | grouped)>
31 <!ATTLIST avp name CDATA #REQUIRED code CDATA #REQUIRED vendor-name CDATA #IMPLIED may-encrypt (yes | no) #IMPLIED v-bit (must | may | shouldnot | mustnot) #IMPLIED m-bit (must | may | shouldnot | mustnot) #IMPLIED p-bit (must | may | shouldnot | mustnot) #IMPLIED>
32 <!--
33    Avp record
34
35    name:          Avp unique name
36    code:          Avp numeric code
37    vendor-name:   Avp vendor name with vendor-id value. Gets IETF (zero value) when missing
38    may-encrypt:   Avp data may be encrypted (yes, no). By default is 'no'
39    v-bit:         Avp vendor-specific bit rule (must, may, shouldnot, mustnot). By default is 'mustnot'
40    m-bit:         Avp mandatory bit rule (must, may, shouldnot, mustnot). By default is 'may'
41    p-bit:         Avp protected (encryption) bit rule (must, may, shouldnot, mustnot). By default is 'may'
42 -->
43
44 <!ELEMENT single (label*)>
45 <!ATTLIST single format-name CDATA #REQUIRED enum CDATA #IMPLIED>
46 <!--
47    Non-grouped avp struct
48
49    format-name: Avp format type name (RFC3588: 'OctetString, Integer32, Integer64, Unsigned32, Unsigned64, Float32, Float64, Address, Time, UTF8String, DiameterIdentity, DiameterURI, Enumerated, IPFilterRule, QoSFilterRule' or application format data type names)
50    enum:        Enum values restriction for enumerated-format avp: '[i][,[j]][,[m-n]...]'
51 -->
52
53 <!ELEMENT label EMPTY>
54 <!ATTLIST label data CDATA #REQUIRED alias CDATA #REQUIRED>
55 <!--
56    Mostly used with enumerated-type avps
57
58    data:    Specific avp data
59    alias:   Data-linked name
60 -->
61
62 <!ELEMENT grouped (avprule+)>
63 <!--
64    Grouped avp struct
65 -->
66
67 <!ELEMENT avprule EMPTY>
68 <!ATTLIST avprule id CDATA #REQUIRED type (Fixed | Mandatory | Optional) #REQUIRED qual CDATA #IMPLIED>
69 <!--
70    Avp rule definition
71
72    id:   Avp name reference. Generic AVP is harcoded with 'AVP' name
73    type: Avp type (Fixed, Mandatory, Optional)
74    qual: Avp qualifier: *:0-inf; x*:x-inf; *x:0-x; x*y:x-y; missing:1(Fixed, Mandatory), 0-1(Optional)
75 -->
76
77 <!ELEMENT command (avprule*)>
78 <!ATTLIST command name CDATA #REQUIRED code CDATA #REQUIRED type (Request | Answer) #REQUIRED>
79 <!--
80    Command record
81
82    name:       Command unique name
83    code:       Command numeric code
84    type:       Command type (Request, Answer)
85 -->
86