Checks the structural correctness of the external report's XML sources: root structure, InternalInfo, properties (including MainDataCompositionSchema), ChildObjects, attributes, tabular sections, name uniqueness, presence of form and template files.
Uses the same script as /epf-validate — auto-detection by element type (ExternalReport).
Usage
/erf-validate <ObjectPath>
Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
| ObjectPath | yes | — | Path to the root XML or report directory |
| MaxErrors | no | 30 | Stop after N errors |
| OutFile | no | — | Write the result to a file (UTF-8 BOM) |
ObjectPath auto-resolve: if a directory is specified — searches for <dirName>/<dirName>.xml.
Command
powershell.exe -NoProfile -File .claude/skills/epf-validate/scripts/epf-validate.ps1 -ObjectPath "<путь>"
Checks performed
| # | Check | Severity |
|---|---|---|
| 1 | Root structure: MetaDataObject/ExternalReport | ERROR |
| 2 | InternalInfo: ClassId, ContainedObject, GeneratedType | ERROR / WARN |
| 3 | Properties: Name, Synonym, MainDataCompositionSchema | ERROR / WARN |
| 4 | ChildObjects: allowed types, order | ERROR / WARN |
| 5 | Cross-references: DefaultForm, MainDCS → Template | ERROR / WARN |
| 6 | Attributes: UUID, Name, Type | ERROR |
| 7 | TabularSections: UUID, Name, GeneratedType, Attributes | ERROR / WARN |
| 8 | Name uniqueness (Attribute, TS, Form, Template, Command) | ERROR |
| 9 | Files: forms (.xml + Ext/Form.xml), templates | ERROR |
| 10 | Form descriptors: root structure, uuid, Name, FormType | ERROR / WARN |
Output
=== Validation: ERF.МойОтчёт ===
[OK] 1. Root structure: MetaDataObject/ExternalReport, version 2.17
[OK] 2. InternalInfo: ClassId correct, 1 GeneratedType
[OK] 3. Properties: Name="МойОтчёт", Synonym present, MainDCS set
[OK] 4. ChildObjects: Form(1), Template(1)
[OK] 5. Cross-references: DefaultForm, MainDCS valid
[OK] 6. Attributes: none
[OK] 7. TabularSections: none
[OK] 8. Name uniqueness: 2 names, all unique
[OK] 9. File existence: 4 files verified
[OK] 10. Form descriptors: 1 checked
=== Result: 0 errors, 0 warnings ===
Return code: 0 = all checks passed, 1 = there are errors.
Verification
/erf-init <Name> --with-skd — создать отчёт с СКД
/erf-validate src/<Name>.xml — проверить результат
/erf-build <Name> — собрать ERF
When to use
- After
/erf-init: verify the scaffold - After adding a form/template/DCS: make sure ChildObjects and MainDCS are correct
- After manually editing XML: identify structural errors before building
- When debugging the build: find the cause of the Designer error