Проверьте XML-файл против нескольких определений схемы

Это просто, после многократного поиска я нашел четкие шаги для обозначения всего файла журнала сбоев.

  • копировать файлы .app, crash_report и DSYM в папку.
  • подключите устройство с помощью xcode
  • Затем перейдите в окно -> выберите устройства -> просмотреть журналы устройства
  • Затем выберите это устройство, удалите все журналы.
  • перетащите и сбросьте ваш сбой в разделе журнала устройства. это будет автоматически символизировать аварию. просто щелкните правой кнопкой мыши отчет и экспортируйте его.

счастливое кодирование,
Рияз

35
задан Jon 7 July 2009 в 21:09
поделиться

2 ответа

Итак, на случай, если кто-то еще столкнется с той же проблемой здесь, мне нужно было загрузить родительскую схему (и неявные дочерние схемы) из модульного теста - в качестве ресурса - для проверки строки XML. . Для этого я использовал Xerces XMLSchemFactory вместе с валидатором Java 6.

Чтобы правильно загрузить дочернюю схему через включение, мне пришлось написать собственный преобразователь ресурсов. Код можно найти здесь:

https://code.google.com/p/xmlsanity/source/browse/src/com/arc90/xmlsanity/validation/ResourceResolver.java

Чтобы использовать преобразователь, укажите его на фабрика схемы:

xmlSchemaFactory.setResourceResolver(new ResourceResolver());

и будет использовать ее для разрешения ваших ресурсов через путь к классам (в моем случае из src / main / resources). Любые комментарии по этому поводу приветствуются ...

18
ответ дан 27 November 2019 в 15:45
поделиться

Схема в Xerces (а) очень и очень педантична и (б) выдает совершенно бесполезные сообщения об ошибках, когда ему не нравится то, что он находит. Это разочаровывающая комбинация.

Материал схемы в python может быть гораздо более снисходительным, и позволял небольшим ошибкам в схеме проходить мимо незарегистрированных.

Теперь, если, как вы говорите, c.xsd включает b.xsd, а b.xsd включает a.xsd, тогда нет необходимости загружать все три в фабрику схем. Это не только не нужно, но и, скорее всего, запутает Xerces и приведет к ошибкам, так что это может быть вашей проблемой. Просто передайте c.xsd фабрике, и пусть он сам разрешит b.xsd и a.xsd, что он и должен делать относительно c.xsd.

2
ответ дан 27 November 2019 в 15:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: