DTD VS.XML schemas
|
DTD |
XML schemas |
|
| syntax | EBNF | XML |
| size | compact | verbose |
| have been around | ~30 years | new |
| can be parsed | no | yes |
| namespaces | are not supported | supported |
| data types | document-oriented data types | data-oriented data types |
| data types | 10 | 37 |
| occurrences | 0, 1 or more. xx to yy can be specified, but unelegantly and only for small values |
any number of occurrences can be specified precisely (1 to 3, for example) |
| enumeration | for attributes only | for attributes and element content |
| constraints | for attribute values only; limited set of constraints (fixed value, choices...) |
rich set of constrains (length, pattern, enumeration, precision, scale...) |
| defaults for attributes | yes | yes |
| attribute grouping | no | yes |
| inheritance | no | yes |
| extensibility | no | new data types can be derived |
| modularity | one DTD per document (can be divided into internal and external part) | as many schemas per document, as needed |
| dynamics | read-only | can be modified at run-time |
| Mostly from: Beginning XML. David Hunter, Curt Cagle, Dave Gibbons, Nikola Ozu, Jon Pinnock, Paul Spencer. Wrox Press Ltd. |