始まりはとっても簡単.
Test.javaimport javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
SchemaFactory sf = SchemaFactory
.newInstance("http://www.w3.org/2001/XMLSchema");
try {
Schema schema = sf.newSchema(new StreamSource(args[0]));
Validator validator = schema.newValidator();
validator.validate(new StreamSource(args[1]));
} catch (Exception e) {
//e.printStackTrace();
System.err.println(e.getMessage());
System.exit(1);
}
System.out.println("Success");
System.exit(0);
}
}
実行> java Test test.xsd test.xml
svg.xsdと関連xsdとなぜかdtdを手に入れる.
- svg.xsd (svg)
- http://www.w3.org/TR/2002/WD-SVG11-20020108/SVG.xsd
- xlink.xsd (xlink)
- http://www.w3.org/TR/xlink11/xlink.xsd
- xml.xsd (namespace)
- http://www.w3.org/2001/03/xml.xsd
- XMLSchema.dtd
- http://www.w3.org/2001/XMLSchema.dtd
- datatypes.dtd
- http://www.w3.org/2001/datatypes.dtd
で,svg.xsdをこちらに従って修正する.
SVG 1.1 XSD Comments
http://lists.w3.org/Archives/Public/www-svg/2008Mar/0085.html
1は先頭のDTD部を削除
2, 3, 4はtype="anyURI"を削除
5はパターンの置き換え
6は要素名をallからchoiceに変更
7はfeFuncRType/feFuncGType/feFuncBType/feFuncATypeの定義(complexType要素)においてtype属性定義部を削除
また,xlink.xsdも修正する.
NCNAMEをNCNameに変更(3カ所)
で,ようやくできた.
というお話.
間違い等あればコメントいただければ幸いです.
0 件のコメント:
コメントを投稿