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 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 } public static var xsdStreamingIdConsistency: Validation { PureXML.Schema.ComplexValidator.idConsistency } /// 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", "xsdNilAttributeRequiresNillable", "xsdNilElementMustBeEmpty", "xsdNilElementNoFixedConstraint", "xsdFixedElementNoChildren", "xsdFixedElementValueMatches", "xsdEmptyContentForbidsChildren", "xsdSimpleContentForbidsChildren", "xsdSimpleContentTypeValid", "xsdTextForbidden", "xsdWildcardElementUndeclared", "xsdSimpleTypeDisallowedAttribute", "xsdSimpleTypeForbidsChildren", "xsdSimpleTypeValueValid", "xsdTypeReferenceResolves", "xsdContentModelStructure", "xsdAttributeTypeValid", "xsdAttributeFixedMatches", "xsdAttributeRequiredPresent", "xsdAttributeSingleID", "xsdAttributeDeclaredOrPermitted", "xsdWildcardAttributeUndeclared", "xsdWildcardAttributeTypeValid", "xsdWildcardAttributeFixedMatches", "xsdXsiTypeSubstitutionValid", "xsdXsiTypeOverrideResolves", "xsdIdIdrefConsistent", "xsdIdentityConstraintXPathsValid", "xsdIdentityKeyFieldPresent", "xsdIdentityValueUnique", "xsdIdentityKeyrefResolves", "xsdIdentityFieldCardinality", "xsdIdentityFieldMustBeSimple", "xsdFinalRespected", "xsdRestrictionsAreSubsets", "conformanceMatchesExpected", "xsdStreamingShallowValidity", "xsdStreamingIdConsistency", ] /// 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, xsdNilAttributeRequiresNillable.description, xsdNilElementMustBeEmpty.description, xsdNilElementNoFixedConstraint.description, xsdFixedElementNoChildren.description, xsdFixedElementValueMatches.description, xsdEmptyContentForbidsChildren.description, xsdSimpleContentForbidsChildren.description, xsdSimpleContentTypeValid.description, xsdTextForbidden.description, xsdWildcardElementUndeclared.description, xsdSimpleTypeDisallowedAttribute.description, xsdSimpleTypeForbidsChildren.description, xsdSimpleTypeValueValid.description, xsdTypeReferenceResolves.description, xsdContentModelStructure.description, xsdAttributeTypeValid.description, xsdAttributeFixedMatches.description, xsdAttributeRequiredPresent.description, xsdAttributeSingleID.description, xsdAttributeDeclaredOrPermitted.description, xsdWildcardAttributeUndeclared.description, xsdWildcardAttributeTypeValid.description, xsdWildcardAttributeFixedMatches.description, xsdXsiTypeSubstitutionValid.description, xsdXsiTypeOverrideResolves.description, xsdIdIdrefConsistent.description, xsdIdentityConstraintXPathsValid.description, xsdIdentityKeyFieldPresent.description, xsdIdentityValueUnique.description, xsdIdentityKeyrefResolves.description, xsdIdentityFieldCardinality.description, xsdIdentityFieldMustBeSimple.description, xsdFinalRespected.description, xsdRestrictionsAreSubsets.description, conformanceMatchesExpected.description, xsdStreamingShallowValidity.description, xsdStreamingIdConsistency.description, ] } } }