3

標準の xml スキーマ データ型に対して文字列を検証する標準的な方法はありますか ( XML Schema Part 2: Datatypes Second Editionまたはより具体的には Built-in-datatypes を参照)。

完全な XSD を検証する必要はありません。ユーザー入力を XML データ型に対して検証したいだけです (例: http://www.w3.org/2001/XMLSchema#dateまたはhttp://www.w3.orgに対して)。 /2001/XMLSchema#boolean )。標準 API を使用してそれを行う方法はありますか? そうでない場合、最初から書く代わりに他の可能性はありますか?

パッケージ javax.xml.validation のクラスは、特定のデータ型ではなく、完全なスキーマの検証を対象としているようです。

私がやろうとしていることの例:

String content = "abc";
String datatype = "http://www.w3.org/2001/XMLSchema#long";
boolean isValid = Validator.isValid(content, datatype); //return false
4

2 に答える 2

0

次のことができます。

public boolean validate(String inputXml, String schemaLocation)throws SaxException, throws IOException {
// build the schema
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
File schemaFile = new File(schemaLocation);
Schema schema = factory.newSchema(schemaFile);
Validator validator = schema.newValidator();

// create a source from a string
Source source = new StreamSource(new StringReader(inputXml));

// check input
boolean isValid = true;
try {
validator.validate(source);
} catch (SaxException e) {
System.err.printlin("Not valid");
isValid = false;
}

return isValid;
}
于 2013-04-02T13:24:31.320 に答える