@@ -46,8 +46,11 @@ public static function provideValidQName(): array
4646 '1st part containing dash ' => [true , 'som-e:Test ' ],
4747 '2nd part containing dash ' => [true , 'some:T-est ' ],
4848 'both parts containing dash ' => [true , 'so-me:T-est ' ],
49+ 'single character unprefixed ' => [true , 'a ' ],
4950 // A single NCName is also a valid QName
5051 'no colon ' => [true , 'Test ' ],
52+ 'unicode ' => [true , 'café:élément ' ],
53+ 'ideographs ' => [true , '東京:品 ' ],
5154 ];
5255 }
5356
@@ -61,8 +64,11 @@ public static function provideInvalidQName(): array
6164 'start 2nd part with dash ' => [false , 'some:-Test ' ],
6265 'start both parts with dash ' => [false , '-some:-Test ' ],
6366 'start with colon ' => [false , ':test ' ],
67+ 'end with colon ' => [false , 'test: ' ],
68+ 'empty string ' => [false , '' ],
6469 'multiple colons ' => [false , 'test:test:test ' ],
6570 'start with digit ' => [false , '1Test ' ],
71+ 'colon ' => [false , ': ' ],
6672 'wildcard ' => [false , 'Te*st ' ],
6773 // Trailing newlines are forbidden
6874 'trailing newline ' => [false , "some:Test \n" ],
0 commit comments