2014-01-16 5 views
1

Мне нужно проверить несколько XML файлов с учетом XSD файлов. Проблема в том, что XSD выполнен из двух файлов. Они вложены, хотя я знаю, какой из них является первым («родителем» других). В файле XML я использую пространства имен для определения, в котором XSD определяется дочерний класс (<CBIBdySDDReq xmlns="urn:CBI:xsd:CBIBdySDDReq.00.00.06" xmlns:msg="urn:CBI:xsd:CBISDDReqLogMsg.00.00.06">). Я использую XMLTools плагин для Notepad ++ для других тестов, но не в состоянии найти и утвердить против этих XSD файлов, потому что я могу дать только один XSD для проверки против в качестве параметра.Как проверить XML на несколько XSD-файлов?

Есть ли инструмент, который может проверить мои сгенерированные XML файлов с более чем одной XSD файлов?

ответ

5

Во-первых, вы должны считать себя счастливым, что вы не получите сильно downvoted ... если только потому, что инструменты, которые должны делать вещи (рекомендации) находятся вне сферы here ...

Тем не менее, если это о том, как добиться того, что вам нужно, используя инструмент, который вы уже используете ... и для которого я видел много проблем, о которых сообщалось на SO ... затем один подход, который будет работать в любое время, когда кто-то имеет ограничение на то, способный предоставить один файл XSD ... заключается в создании такого XSD-файла, который под ним будет импортировать все другие файлы XSD, на которые вам нужно ссылаться.

Это пример тупиковой XSD, который будет работать в вашем случае:

<?xml version="1.0" encoding="utf-8" ?> 
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) --> 
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:import namespace="(a)" schemaLocation="(b)"/> 
</xsd:schema> 

где:

(а) значение, которое вы видите в атрибуте TargetNamespace из XSD: схемы вы ссылка на пожелание; если нет targetNamespace, затем удалите атрибут пространства имен (и добавьте целевое пространство имен, содержащее какое-то фиктивное значение для заглушки XSD)

(b) расположение файла, содержащего XSD, который вы хотите ссылаться. Начните с использования полного пути здесь; поскольку вы узнаете больше о XSD или вашем инструменте, вы можете прийти к выводу, что лучше, если поддерживается вашим инструментом, предоставить относительный URI, который находится между местоположением вашего «заглушки» XSD (это действительно «агрегатор» »), а другой - XSD. Относительные URI более дружелюбны с точки зрения перемещения вашего материала (как целое подразделение, как в случае скрепления всех ваших файлов и отправки кому-то еще). Пример ... если файлы находятся в одной папке, вам просто нужно указать здесь имя файла.

Добавить строку xsd: import для каждого из XSD, которые не достижимы через все остальные XSD, или что ваш инструмент, кажется, жалуется на недопустимые.

+0

Thnks для ответа. Я новичок в SO, поэтому я не знал, что здесь это не так. Я думал, что если инструмент поможет мне, разработав код экспорта для XML-файла, в этом случае его можно опубликовать здесь. Другие связанные с XML-XSD вопросы о SO i, которые я видел до сих пор, касались внедрения собственной системы валидации. Спасибо за быстрый и ясный ответ (: – Springrbua

+1

@Springrbua, не стоит беспокоиться, рекомендующие инструменты неизбежно дают полемику, по крайней мере в большинстве случаев ... Лучший инструмент - тот, который один знает и делает то, что нужно ... и учитывая формат и фокус SO ... –

+0

Я видел, что вопросы на SO не должны основываться на мнениях, и я попытаюсь подумать об этом в следующий раз. – Springrbua

Смежные вопросы