Michael Kayの回答によると、XSD1.1を使用してロジックを実装しました。( $ valueを@nameに変更する必要がありました)
手順:1。最新のXerces1.1実装jarファイルで次のコードを使用しました。
<xs:element name="random-element">
<xs:complexType>
<xs:attribute name="name" use="required" type="xs:string" />
<xs:attribute name="value" use="optional" type="xs:string" />
<xs:assert test="not(tokenize(@name, '\s+') = ('byte', 'bing', 'ding'))"/>
</xs:complexType>
</xs:element>
3.次のコードを使用して検証されます。
final SchemaFactory schemaFactory = SchemaFactory.newInstance(Constants.W3C_XML_SCHEMA11_NS_URI);
final Schema schema = schemaFactory.newSchema(schemaFile);
final Validator validator = schema.newValidator();
validator.validate(xmlFile);
定数W3C_XML_SCHEMA11_NS_URIは非常に重要です。そうでない場合、失敗します。