Files
oot/tools/ZAPD/docs/zapd_xml_spec.md
T
louist103 750c0cab35 Update ZAPD (#1001)
* remove fake match

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "3e9ed72e2"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "3e9ed72e2"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* new extraction script and a hack to make clear tag work

* fix clear tag again

* remove static from clear tag DLists

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "e7a8a48cf"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "e7a8a48cf"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "e243634e5"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "e243634e5"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "d0cd6b397"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "d0cd6b397"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* Update ovl_En_Clear_Tag.xml
2021-10-17 13:32:09 +02:00

56 lines
1.4 KiB
Markdown

# 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 `<tag>` ending appropriately with `</tag>`, single "empty-element" tags with `/` at the end, etc.).
Reminder that in
```xml
<a>
<b1>
<c/>
</b1>
<b2>
<d/>
</b2>
<e/>
</a>
```
`<b1>`, `<b2>`, `<e/>` are *children* of `<a>`, but `<c/>` is not. `<c/>` is a *descendent* of `<a>` and a child of `<b>`.
- Every XML's outermost element start/end tag is a single `<Root>`.
- The children of a `<Root>` must be `<File>`s.
- A `<File>` has *resources* as children. A resource is almost always single empty-element tag, and has one of the types
- `<Texture>`
- `<Background>`
- `<Blob>`
- `<DList>`
- `<TextureAnimation>`
- `<Scene>`
- `<Room>`
- `<AltHeader>`
- `<Animation>`
- `<PlayerAnimation>`
- `<CurveAnimation>`
- `<LegacyAnimation>`
- `<Skeleton>`
- `<LimbTable>`
- `<Limb>`
- `<Symbol>`
- `<Collision>`
- `<Scalar>`
- `<Vector>`
- `<Vtx>`
- `<Mtx>`
- `<Cutscene>`
- `<Array>`
- `<Path>`
- `<PlayerAnimationData>`
- A `<File>` cannot descend from a `<File>`.
- All resources must be children of a `<File>`.
- `<Array>` is the only paired resource tag enclosing an element; the element must be a single resource tag, one of
- `<Scalar>`
- `<Vector>`
- `<Vtx>`