私はXSDに対してXMLを検証するために、このコードを使用しています:SAX XML Schema Validatorの検証メッセージで内部化を取得する方法は?
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Schema schema = factory.newSchema(xmlSchema);
Validator validator = schema.newValidator();
Source source = new StreamSource(myXmlFile);
try {
validator.validate(source);
return null;
}catch (SAXException ex) {
String validationMessage = ex.getMessage();
return validationMessage;
}
しかし、XMLが有効でない場合、メッセージは常にこのようなものです:
cvc-minLength-valid: Value '-' with length = '1' is not facet-valid with respect to minLength '2' for type '#AnonType_xLgrTEndereco'.
は、方法はありますプログラムでメッセージを翻訳することなく、わかりやすいメッセージを自分の言語で返すことができますか?
UPDATE これは、メッセージが発生しているフィールドのXSD内のコードの一部です:あなたはそれが偶数フィールドの「名前」を返すように記述されている見ることができるように
<xs:element name="xLgr">
<xs:annotation>
<xs:documentation>Logradouro</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="TString">
<xs:maxLength value="60"/>
<xs:minLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
(Logradouro)、スキーマ検証ツールはそれを認識していないようです。
'string validationMessage = ex.getLocalizedMessage();'を使用するときに、好みの言語を取得していますか? –
残念ながら、メッセージはまだ英語で、ユーザーフレンドリーではないフォーマット –
も参考になります。 http://vijiprakash.blogspot.com/2008/05/custom-error-message-in-xml-xsd。 html – Musa