java.net.ConnectException: проверка Xml на XSD: локальный компьютер - PullRequest
1 голос
/ 02 августа 2011

Мне нужно проверить XML по локальному XSD, и у меня нет интернет-соединения на целевой машине (на которой выполняется этот процесс). Код выглядит так:

SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");

File schemaLocation = new File(xsd);

Schema schema = factory.newSchema(schemaLocation);

Validator validator = schema.newValidator();

Source source = new StreamSource(new BufferedInputStream(new FileInputStream(new File(xml))));

validator.validate(source);

Я всегда получаю исключение java.net.ConnectException при вызове validate ().

Не могли бы вы дать мне знать, что делается неправильно?

Большое спасибо. Абхишек

1 Ответ

1 голос
/ 28 декабря 2011

Согласен с комментарием Мэдса - здесь, скорее всего, много ссылок, в которых будут предприняты попытки исходящих подключений к Интернету, и вам нужно будет загрузить для них локальные копии. Однако я бы посоветовал не менять ссылки в файлах XML или схем и т. Д., А вместо этого предоставить EntityResolver для возврата содержимого ваших локальных копий вместо подключения к Интернету. (Я ранее немного об этом писал на http://blogger.ziesemer.com/2009/01/xml-and-xslt-tips-and-tricks-for-java.html#InputValidation.)

Однако, в вашем случае, поскольку вы используете Validator вместо Validator.setResourceResolver(...) - и передаете LSResourceResolver перед вызовом validate .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...