public extension PureXML.Validation { /// The shipped builtin validation rules, keyed by stable description strings. /// Reference rules through KeyPath at `BuiltinValidation.Type` so they can be /// added or removed by identity (`withoutValidating`). enum BuiltinValidation { // MARK: Structural public static var uniqueAttributes: Validation { Structural.uniqueAttributes } // MARK: DTD public static var dtdContentModel: Validation { DTD.contentModel } public static var dtdRequiredAttributes: Validation { DTD.requiredAttributes } public static var dtdFixedAttributeValues: Validation { DTD.fixedAttributeValues } public static var dtdEnumeratedAttributeValues: Validation { DTD.enumeratedAttributeValues } public static var dtdTokenizedAttributeTypes: Validation { DTD.tokenizedAttributeTypes } public static var dtdNotationAttributes: Validation { DTD.notationAttributes } public static var dtdUndeclaredElement: Validation { DTD.undeclaredElement } public static var dtdUndeclaredAttributes: Validation { DTD.undeclaredAttributes } public static var dtdDeclarationValidity: Validation { DTD.declarationValidity } public static var dtdRootElementType: Validation { DTD.rootElementType } public static var dtdIdentifierIntegrity: Validation { DTD.identifierIntegrity } public static var dtdStandaloneAttributes: Validation { DTD.standaloneAttributes } public static var dtdStandaloneElementWhitespace: Validation { DTD.standaloneElementWhitespace } public static var dtdParseAdvisories: Validation { DTD.parseAdvisories } // MARK: HTML public static var htmlVoidElementsAreEmpty: Validation { HTML.voidElementsAreEmpty } public static var htmlRequiredParent: Validation { HTML.requiredParent } public static var htmlUniqueIdentifiers: Validation { HTML.uniqueIdentifiers } // MARK: XSD instance public static var xsdContentValidity: Validation { XSD.contentValidity } public static var xsdIdentityConstraints: Validation { XSD.identityConstraints } // MARK: XSD schema consistency public static var xsdFinalRespected: Validation { PureXML.Validation.XSDSchema.finalRespected } public static var xsdRestrictionsAreSubsets: Validation { PureXML.Validation.XSDSchema.restrictionsAreSubsets } // MARK: Conformance public static var conformanceMatchesExpected: Validation { Conformance.matchesExpected } // MARK: XSD streaming public static var xsdStreamingShallowValidity: Validation { PureXML.Schema.ComplexValidator.shallowValidity } /// Stable ids for each shipped builtin rule (matches ``BuiltinValidation`` properties). public static let allRuleIDs: [String] = [ "uniqueAttributes", "dtdContentModel", "dtdRequiredAttributes", "dtdFixedAttributeValues", "dtdEnumeratedAttributeValues", "dtdTokenizedAttributeTypes", "dtdNotationAttributes", "dtdUndeclaredElement", "dtdUndeclaredAttributes", "dtdDeclarationValidity", "dtdRootElementType", "dtdIdentifierIntegrity", "dtdStandaloneAttributes", "dtdStandaloneElementWhitespace", "dtdParseAdvisories", "htmlVoidElementsAreEmpty", "htmlRequiredParent", "htmlUniqueIdentifiers", "xsdContentValidity", "xsdIdentityConstraints", "xsdFinalRespected", "xsdRestrictionsAreSubsets", "conformanceMatchesExpected", "xsdStreamingShallowValidity", ] /// Every builtin rule description, in deterministic order, for configuration-pin tests. public static var allDescriptions: [String] { [ uniqueAttributes.description, dtdContentModel.description, dtdRequiredAttributes.description, dtdFixedAttributeValues.description, dtdEnumeratedAttributeValues.description, dtdTokenizedAttributeTypes.description, dtdNotationAttributes.description, dtdUndeclaredElement.description, dtdUndeclaredAttributes.description, dtdDeclarationValidity.description, dtdRootElementType.description, dtdIdentifierIntegrity.description, dtdStandaloneAttributes.description, dtdStandaloneElementWhitespace.description, dtdParseAdvisories.description, htmlVoidElementsAreEmpty.description, htmlRequiredParent.description, htmlUniqueIdentifiers.description, xsdContentValidity.description, xsdIdentityConstraints.description, xsdFinalRespected.description, xsdRestrictionsAreSubsets.description, conformanceMatchesExpected.description, xsdStreamingShallowValidity.description, ] } } }