Surface <!ATTLIST> declarations from the parser and validate attributes against them. Reimplemented from the DTD attribute-list spec; no upstream code copied. - DocumentType gains attributeLists (raw ATTLIST bodies per element); the DoctypeScanner captures them and the EventReader plumbs them through. - AttributeListParser parses a body into AttributeDeclaration values (AttributeType: cdata or enumeration; AttributeDefault: required/implied/ fixed/value). - DTDSchema now checks #REQUIRED presence, #FIXED value match (when present), and enumerated-value membership, in addition to content models. - Tokenized types (ID/IDREF/NMTOKEN) parse but are not yet value-enforced. - 5 attribute tests; 75 total.
10 lines
288 B
Swift
10 lines
288 B
Swift
extension PureXML.Validation {
|
|
/// One declared attribute from a DTD `<!ATTLIST>`: its name, type, and
|
|
/// default declaration.
|
|
struct AttributeDeclaration: Equatable {
|
|
let name: String
|
|
let type: AttributeType
|
|
let defaultDecl: AttributeDefault
|
|
}
|
|
}
|