---
description: "Use quando editar formularios/processos Vitruvio em XML/BPMN (.xml, .bpmn): estrutura, namespace, scripts CDATA, defaults de bind e scripts compativeis com Rhino."
name: "Vitruvio XML e BPMN"
applyTo: "**/*.xml, **/*.bpmn"
---
# Vitruvio XML e BPMN

- Preserve a estrutura de XML Vitruvio e os padroes de nomenclatura ja usados no repositorio.
- Mantenha namespaces oficiais e schema locations nas tags raiz.
- Scripts dentro do XML devem ser compativeis com Rhino (ES5):
  - Usar apenas `var`.
  - Nao usar template strings porém outros recursos modernos de JS são compativeis, como métodos de array (`forEach`, `map`, `filter`) e objetos (`Object.keys`, `Object.values`).
- Monte SQL/HTML com concatenacao incremental de strings.
- Mantenha os blocos de skeleton quando aplicavel:
  - `descriptorScript`, `form`, `name`, `initScript`, `validators`, `buttons`.
- O acesso a campos/componentes deve seguir o uso da plataforma:
  - `engine.getField`, `engine.getLabel`, `engine.getWidget`, `engine.setGlobalVariable`.
- Em `<bind>`, todo `<parameter>` deve conter `defaultValue` (string, number, date).
- Reaproveite IDs e padroes de formularios existentes sempre que possivel.
- Mantenha scripts curtos, legiveis e focados no comportamento em runtime.
