docx-validate
    Preparing search index...

    Function withoutRepeatedHeaderFooterFindings

    • A full non-lenient run reports each story w:headerReference/ w:footerReference the word-header-footer-relationship rule judged once — through that rule — so the same run's validateAllRelationshipIds result drops its rels-id-mismatch copy, and for an r:id naming no Relationship its rels-id-missing copy, of each reported element (#612, #619); a dangling Transitional r:id on a c:chart or an o:OLEObject pairs the same way with word-part-reference-relationship (#705, sessions 45 and 46), a dangling wne:toolbarData r:id with word-attached-toolbar-relationship (#716, session 48), and a dangling or mistyped w:hyperlink r:id with word-hyperlink-relationship (#1089, session 28). The pairing is the structured identity both producers registered on the issue object when they created it (#616): part path (normalized on registration, as withoutRepeatedCompatibilityFindings compares paths), element namespace URI, local name and the raw r:id all match; a finding also lists the element's other ids (otherRids), so the legacy copy of an id in either relationships namespace pairs (#1074, #1079). The namespace URI the r:id was read in is deliberately not part of the pairing (#727): the Word rule reads the markup-compatibility view and the legacy walk the raw part, so an element with an mc:Choice and an mc:Fallback twin yields two legacy copies of the one defect the Word rule reports once, and a Strict-namespace r:id on the selected twin (review BE F1) is the same element name's other spelling. The key is the same element name — namespace URI and local name — with the same Id in the same part, not the element instance: every legacy copy of it is dropped, the unselected twin's copy with it. That holds through an otherRids key too, so a twin naming one of the element's other ids reads as that element's spelling and its copy is dropped (review 1084's S10). No finding is dropped for another part, another element name, or an Id that is neither the finding's rid nor one of its otherRids; and the legacy walk registers an identity only on an r:id copy, so an r:embed or r:link copy is never dropped (#1086). The former message-prose pairing let a quoted r:id double the report and a crafted r:id consume a foreign element's only mismatch. A finding without a registered identity — another producer, or a copy made between producer and helper — is never dropped. Where the Word rule stays silent — a foreign-namespace x:headerReference, a glossary no main-document relationship reaches — the legacy findings stay, and validateAllRelationshipIds called on its own reports every one.

      Parameters

      Returns ValidationResult