@xml-tools/constraints
Version:
XML constraints validations
45 lines (41 loc) • 1.13 kB
JavaScript
/**
* @param {XMLElement} elem
* @returns {ValidationIssue[]}
*/
function validateTagClosingNameMatch(elem) {
const openTagToken = elem.syntax.openName;
const closeTagToken = elem.syntax.closeName;
// The element tag must have **both** the opening and closing tokens
// to be able to validate.
if (!openTagToken || !closeTagToken) {
return [];
}
// alles gut
if (openTagToken.image === closeTagToken.image) {
return [];
} else {
return [
{
msg: `tags mismatch: "${openTagToken.image}" must match closing tag: "${closeTagToken.image}"`,
node: elem,
severity: "error",
position: {
startOffset: openTagToken.startOffset,
endOffset: openTagToken.endOffset,
},
},
{
msg: `tags mismatch: "${closeTagToken.image}" must match opening tag: "${openTagToken.image}"`,
node: elem,
severity: "error",
position: {
startOffset: closeTagToken.startOffset,
endOffset: closeTagToken.endOffset,
},
},
];
}
}
module.exports = {
validateTagClosingNameMatch,
};