Codes
A reader reports two kinds of mistake, each with a code and the line and
column where it is. A syntax error stops the reader at the first one
(section 5 of the specification). A
problem breaks a rule of the language in a page whose syntax is right,
and a checker reports every one (section 8).
The samples are pages from the conformance
samples that give the code; each
has an .expected.json beside it with the place a reader gives.
This page is made by pnpm reference:update; do not edit it by hand.
Syntax errors
| Code | Meaning | Samples |
|---|---|---|
no-root |
The document has no root element | no-root |
text-outside-root |
Text before or after the root element | text-after-root, text-outside-root |
second-root |
A second root element | second-root |
unexpected-end |
A tag that is not finished: the text ends inside it, or an end tag holds more than its name | end-tag-with-attribute, unexpected-end-after-equals, unexpected-end-after-less-than, unexpected-end-after-slash, unexpected-end-in-end-tag, unexpected-end |
invalid-name |
A name was expected (for example < scene>) |
comment-in-tag, invalid-name, null-in-tag, value-without-name |
uppercase-name |
A name uses upper-case letters | after-byte-order-mark, uppercase-attribute, uppercase-name |
unquoted-value |
An attribute value without quotes | unquoted-value |
unclosed-value |
An attribute value whose closing quote is missing | unclosed-value-at-end, unclosed-value |
duplicate-attribute |
An attribute given twice on one element | duplicate-attribute |
missing-space |
No whitespace where a tag needs it: two attributes with none between them, or a character a name cannot have | missing-space, underscore-in-name |
stray-slash |
A / in a tag that is not followed by > |
stray-slash |
unclosed-element |
An element still open at the end of the text | unclosed-element |
mismatched-end-tag |
An end tag that does not match the open element | mismatched-end-tag-nested, mismatched-end-tag |
stray-end-tag |
An end tag with no element open | end-tag-after-root, stray-end-tag |
bad-character-reference |
An & that is not a known character reference |
bad-character-reference, bare-ampersand, inherited-reference, reference-in-value, reference-to-surrogate, reference-to-zero, reference-too-large, reference-too-long, reference-upper-case-x |
unclosed-comment |
A comment with no --> |
unclosed-comment |
bad-comment |
A comment that contains -- |
bad-comment |
unsupported-markup |
<!...> or <?...?> other than a comment |
cdata-section, processing-instruction, unsupported-markup |
less-than-in-value |
A < inside an attribute value |
less-than-in-value |
null-character |
The null character, in text, in a value, or in a comment | null-character, null-in-comment, null-in-value |
too-deep |
An element nested more than 256 deep | too-deep |
Problems
| Code | Meaning | Samples |
|---|---|---|
wrong-root |
The root element is not holoml |
wrong-root |
unsupported-version |
The version is not one the reader knows, written exactly |
unsupported-version-and-more, unsupported-version, version-not-exact |
unknown-element |
An element that is not in the page's HoloML version | ids-in-misplaced-elements, inherited-names, newer-than-declared, unknown-element, unsupported-version-and-more |
child-not-allowed |
An element where it may not stand | bad-choice, bad-click-actions, bad-slider, bad-values, bad-water, child-not-allowed, element-in-text, hud-in-group, ids-in-misplaced-elements |
text-not-allowed |
Text in an element that holds none (text belongs in title, label, and (0.2) hud, slider, option, and panel) |
inline-script, text-after-references, text-not-allowed |
empty-text |
An element that holds text, with none (a hud may be empty) |
bad-choice, bad-click-actions, bad-slider, element-in-text, empty-text, whitespace-text |
too-many |
A further head, scene, title, (0.1) viewpoint, or (0.2) plan or water |
bad-click-actions, bad-water, not-in-older-version, three-of-one, too-many |
missing-child |
holoml without a scene, or (0.2) a choice without an option |
bad-choice, missing-child |
wrong-order |
head after scene |
wrong-order |
unknown-attribute |
An attribute the element does not have | inherited-names, newer-than-declared, not-in-02, not-in-older-version, unknown-attribute |
missing-attribute |
A required attribute is missing, or (0.2) one that another needs: a choice's target and material go together, a click action's trigger, toggle, and label need begin="click", an animation that begins on a click needs a trigger when its target cannot be clicked, and a sound always does, each of several viewpoints needs an id, a group's near needs load="near", and a sound's range needs a position |
bad-03-attributes, bad-choice, bad-click-actions, bad-loading-by-area, bad-water, choice-material-alone, missing-attribute, unsupported-version-and-more |
bad-value |
A value of the wrong kind, or out of range, or (0.2) one that another attribute or element rules out: a slider's max and value, a toggle's repeat, a click sound's autoplay, an option's value that another has, a choice's value |
address-characters, bad-02-values, bad-03-attributes, bad-choice, bad-click-actions, bad-loading-by-area, bad-numbers, bad-slider, bad-times, bad-values, bad-water, choice-values-bad-by-kind, empty-values, identifier-spaces, ids-in-misplaced-elements, inherited-names, newer-than-declared, other-spaces, overflow, toggle-repeat |
attribute-not-for-type |
A light attribute its type does not use | attribute-not-for-type, bad-choice |
duplicate-id |
Two elements with the same id | duplicate-id, ids-in-misplaced-elements |
unknown-target |
An id reference (an animate target, (0.2) a trigger, a choice's target) that no element has |
bad-choice, bad-click-actions, ids-in-misplaced-elements, not-in-02, unknown-target |
bad-target |
An attribute that cannot be animated on that element, or (0.2) a trigger that cannot be clicked, or a choice's target that is not a model | animated-light-targets, bad-choice, bad-click-actions, bad-target, not-in-older-version |
nested-link |
A link inside another link | nested-link |
unsafe-link |
An address with a scheme other than http or https | address-characters, unsafe-link |