# ZAPD XML specification
ZAPD XMLs use a restrictive subset of the XML standard: any ZAPD XML must be a valid XML (All elements starting with `` ending appropriately with ``, single "empty-element" tags with `/` at the end, etc.).
Reminder that in
```xml
```
``, ``, `` are *children* of ``, but `` is not. `` is a *descendent* of `` and a child of ``.
- Every XML's outermost element start/end tag is a single ``.
- The children of a `` must be ``s.
- A `` has *resources* as children. A resource is almost always single empty-element tag, and has one of the types
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
- A `` cannot descend from a ``.
- All resources must be children of a ``.
- `` is the only paired resource tag enclosing an element; the element must be a single resource tag, one of
- ``
- ``
- ``