root/branches/1.3/generator/resources/dtd/database.dtd

Revision 661, 4.4 kB (checked in by oliver, 2 years ago)

allowing custom validator config in schema.xml without xml validation errors, plus fixing a typo which meant that <validator> element was expecting a "type" attribute.

Line 
1 <!--
2     Propel XML database schema DTD
3     $Id: database.dtd,v 1.7 2005/03/30 11:38:18 hlellelid Exp $
4
5     This is based very closely on the schema DTD for Torque, but
6     some differences do exist.
7 -->
8
9 <!--
10
11 defaultPhpNamingMethod determines how a table or column name,
12 from the name attribute in the xml database file, is converted to a
13 PHP class or method name.
14
15      nochange   - indicates not change is performed.
16      underscore - Underscores are removed, First letter is
17               capitalized, first letter after an underscore
18               is capitalized, the rest of the letters are
19               converted to lowercase.
20      phpname   - same as underscore, but no letters are converted
21               to lowercase.
22 -->
23
24 <!ELEMENT database (external-schema*, table+)>
25 <!ATTLIST database
26   name CDATA #IMPLIED
27   defaultIdMethod (native|none) "none"
28   defaultTranslateMethode CDATA #IMPLIED
29   package CDATA #IMPLIED
30   baseClass CDATA #IMPLIED
31   basePeer CDATA #IMPLIED
32   defaultPhpNamingMethod (nochange|underscore|phpname) "underscore"
33   heavyIndexing (true|false) "false"
34 >
35
36 <!ELEMENT external-schema EMPTY>
37 <!ATTLIST external-schema
38   filename CDATA #REQUIRED
39 >
40
41 <!--
42      note: the interface="true", requires that useManagers=true in the
43      properties file.
44 -->
45 <!ELEMENT table (column+,(foreign-key|index|unique|id-method-parameter|validator|vendor)*)>
46 <!ATTLIST table
47   name CDATA #REQUIRED
48   phpName CDATA #IMPLIED
49   idMethod (native|autoincrement|sequence|none|null) "null"
50   skipSql (true|false) "false"
51   readOnly (true|false) "false"
52   abstract (true|false) "false"
53   treeMode (MaterializedPath|NestedSet|AdjacencyList) "AdjacencyList"
54   package CDATA #IMPLIED
55   baseClass CDATA #IMPLIED
56   basePeer CDATA #IMPLIED
57   alias CDATA #IMPLIED
58   interface CDATA #IMPLIED
59   phpNamingMethod (nochange|underscore|phpname) #IMPLIED
60   heavyIndexing (true|false) #IMPLIED
61   description CDATA #IMPLIED
62 >
63
64 <!ELEMENT id-method-parameter EMPTY>
65 <!ATTLIST id-method-parameter
66   name CDATA "default"
67   value CDATA #REQUIRED
68 >
69
70 <!ELEMENT column ((inheritance|vendor)*)>
71 <!ATTLIST column
72   name CDATA #REQUIRED
73   phpName CDATA #IMPLIED
74   peerName CDATA #IMPLIED
75   primaryKey (true|false) "false"
76   required (true|false) "false"
77   type
78     (
79           BIT  | TINYINT | SMALLINT    | INTEGER    | BIGINT    | FLOAT
80         | REAL | NUMERIC | DECIMAL     | CHAR       | VARCHAR   | LONGVARCHAR
81         | DATE | TIME    | TIMESTAMP   | BINARY     | VARBINARY | LONGVARBINARY
82         | NULL | OTHER   | PHP_OBJECT  | DISTINCT   | STRUCT    | ARRAY
83         | BLOB | CLOB    | REF         | BOOLEANINT | BOOLEANCHAR
84         | DOUBLE | BOOLEAN
85     ) "VARCHAR"
86   phpType CDATA #IMPLIED
87   sqlType CDATA #IMPLIED
88   size CDATA #IMPLIED
89   scale CDATA #IMPLIED
90   default CDATA #IMPLIED
91   defaultValue CDATA #IMPLIED
92   defaultExpr CDATA #IMPLIED
93   autoIncrement (true|false) "false"
94   inheritance (single|false) "false"
95   inputValidator CDATA #IMPLIED
96   phpNamingMethod (nochange|underscore|phpname) #IMPLIED
97   description CDATA #IMPLIED
98   lazyLoad (true|false) "false"
99 >
100
101 <!ELEMENT inheritance EMPTY>
102 <!ATTLIST inheritance
103   key CDATA #REQUIRED
104   class CDATA #REQUIRED
105   package CDATA #IMPLIED
106   extends CDATA #IMPLIED
107 >
108
109 <!ELEMENT foreign-key (reference+, vendor*)>
110 <!ATTLIST foreign-key
111   foreignTable CDATA #REQUIRED
112   name CDATA #IMPLIED
113   phpName CDATA #IMPLIED
114   refPhpName CDATA #IMPLIED
115   onUpdate (CASCADE|cascade|SETNULL|setnull|RESTRICT|restrict|NONE|none) "none"
116   onDelete (CASCADE|cascade|SETNULL|setnull|RESTRICT|restrict|NONE|none) "none"
117 >
118
119 <!ELEMENT reference EMPTY>
120 <!ATTLIST reference
121   local CDATA #REQUIRED
122   foreign CDATA #REQUIRED
123 >
124
125 <!ELEMENT index (index-column+)>
126 <!ATTLIST index
127   name CDATA #IMPLIED
128 >
129
130 <!ELEMENT index-column (vendor*)>
131 <!ATTLIST index-column
132   name CDATA #REQUIRED
133   size CDATA #IMPLIED
134 >
135
136 <!ELEMENT unique (unique-column+)>
137 <!ATTLIST unique
138   name CDATA #IMPLIED
139 >
140
141 <!ELEMENT unique-column (vendor*)>
142 <!ATTLIST unique-column
143   name CDATA #REQUIRED
144 >
145
146 <!ELEMENT validator (rule+)>
147 <!ATTLIST validator
148   column CDATA #REQUIRED
149   translate CDATA #IMPLIED
150 >
151
152 <!ELEMENT rule EMPTY>
153 <!ATTLIST rule
154   name (mask|maxLength|maxValue|minLength|minValue|required|unique|validValues|class) #REQUIRED
155   class CDATA #IMPLIED
156   value CDATA #IMPLIED
157   size ID #IMPLIED
158   message CDATA #IMPLIED
159 >
160
161 <!ELEMENT vendor (parameter+)>
162 <!ATTLIST vendor
163   type CDATA #REQUIRED
164 >
165
166 <!ELEMENT parameter EMPTY>
167 <!ATTLIST parameter
168   name CDATA #REQUIRED
169   value CDATA #REQUIRED
170 >
Note: See TracBrowser for help on using the browser.