Я генерирую некоторые компоненты из нескольких xsd через ant-build.Проверка xml против xsd, который использовался для генерации Beans
При демонтаже xml, я хотел бы подтвердить это. Насколько я знаю, есть теперь способ сделать это с бобами сам себе, что нужно сделать что-то вроде этого:
JAXBContext context = JAXBContext.newInstance(Bean.class);
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("whatever.xsd"));
Unmarshaller unmarshaller = context.createUnmarshaller();
unmarshaller.setSchema(schema);
unmarshaller.setEventHandler(validationHandler);
return (Bean) unmarshaller.unmarshal(givenXmlString);
Моя проблема заключается в том, что new File("whatever.xsd")
. Я не хочу жестко указывать URL-адрес xsd, который может быть изменен позже (т. Е. Путем реорганизации проекта) и будет прерываться во время выполнения, потому что один забыл (или не знал) изменить этот URL-адрес.
Идея:
Единственная идея, у меня есть для этого, чтобы скопировать XSD в ту же папку, создаваемые компонентов и использовать имяпакет одного боба для генерации URL во время выполнения.
Любые лучшие идеи?
Не могли бы вы поместить все xsd для проверки во внешние 'свойства'. – Xstian
@Xstian: Вы говорите, чтобы поместить URL-адрес в xsds в файле свойств? Я обновил сообщение, чтобы объяснить, почему это не поможет: _I не хочу жестко указывать URL-адрес xsd, который может измениться позже (т. Е. Путем реорганизации проекта) и будет прерываться во время выполнения, потому что один забыл (или не сделал знаете), чтобы изменить этот url._ – Sammy
Вы можете использовать некоторое жестко закодированное значение по умолчанию и настроить его по внешнему файлу свойств. – Xstian