import Testing @testable import PureXML @Suite("RELAX NG compact name-class subtraction") struct RelaxNGNameClassTests { private func valid(_ rnc: String, _ xml: String) throws -> Bool { try PureXML.Schema.RelaxNG(compact: rnc).validate(xml) } @Test("* - name admits any element except the subtracted one") func test_subtraction() throws { let rnc = "element root { element * - skip { empty }* }" #expect(try valid(rnc, "")) #expect(try !valid(rnc, "")) } @Test("A plain wildcard still admits everything") func test_plainWildcard() throws { let rnc = "element root { element * { empty }* }" #expect(try valid(rnc, "")) } }