powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Валидация XML по XSD
4 сообщений из 4, страница 1 из 1
Валидация XML по XSD
    #39082733
Андрей Васильевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая проблема: xsd-файл и есть огромное(несколько ГБ сжатых и не очень) множество xml и я их загоняю в базу. Но не все секции, а только часть. Провожу валидацию таким образом:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    public static boolean validateXml(File xml, File xsd) {
    try {
        SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
                .newSchema(new StreamSource(xsd))
                .newValidator()
                .validate(new StreamSource(xml));
    } catch (Exception e) {
        return false;
    }
    return true;
    }


Но вот проблема, есть тэги которые мне не нужно проверять на валидность, а их структуру я не знаю и там может быть что угодно. Можно ли в схеме указать места где может быть что угодно?
...
Рейтинг: 0 / 0
Валидация XML по XSD
    #39082738
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ВасильевичМожно ли в схеме указать места где может быть что угодно?
http://www.w3schools.com/schema/el_any.asp
http://www.w3schools.com/schema/schema_complex_any.asp
...
Рейтинг: 0 / 0
Валидация XML по XSD
    #39083252
Андрей Васильевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Спасибо большое за ссылки! Честно говоря, до вчерашнего дня даже не думал что такое возможно. any не совсем получается. На примере ниже я конструкцией xs:any пропускаю <КоличествоЛьготныхСоставляющих> но как пропустить всю(с содержимым) секцию <ЛьготныйСтаж> ?
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<СтажевыйПериод>
<НомерСтроки>1</НомерСтроки>
<ДатаНачалаПериода>01.10.2014</ДатаНачалаПериода>
<ДатаКонцаПериода>17.11.2014</ДатаКонцаПериода>
<КоличествоЛьготныхСоставляющих>1</КоличествоЛьготныхСоставляющих>
<ЛьготныйСтаж>
	<НомерСтроки>1</НомерСтроки>
	<ОсобенностиУчета>
		<ДекретДети>ДЛДЕТИ</ДекретДети>
	</ОсобенностиУчета>
</ЛьготныйСтаж>
</СтажевыйПериод>



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<СтажевыйПериод>
<НомерСтроки>1</НомерСтроки>
<ДатаНачалаПериода>01.10.2014</ДатаНачалаПериода>
<ДатаКонцаПериода>17.11.2014</ДатаКонцаПериода>
<КоличествоЛьготныхСоставляющих>1</КоличествоЛьготныхСоставляющих>
<ЛьготныйСтаж>
	<НомерСтроки>1</НомерСтроки>
	<ОсобенностиУчета>
		<ДекретДети>ДЛДЕТИ</ДекретДети>
	</ОсобенностиУчета>
</ЛьготныйСтаж>
</СтажевыйПериод>
...
Рейтинг: 0 / 0
Валидация XML по XSD
    #39083255
Андрей Васильевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибся там:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<xs:element name="СтажевыйПериод">
  <xs:complexType>
	<xs:sequence>
	  <xs:element type="xs:short" name="НомерСтроки"/>
	  <xs:element type="xs:string" name="ДатаНачалаПериода"/>
	  <xs:element type="xs:string" name="ДатаКонцаПериода"/>
	  <xs:any namespace="##any" minOccurs="0" processContents="lax"/>
	</xs:sequence>
  </xs:complexType>
</xs:element>


и
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<СтажевыйПериод>
<НомерСтроки>1</НомерСтроки>
<ДатаНачалаПериода>01.10.2014</ДатаНачалаПериода>
<ДатаКонцаПериода>17.11.2014</ДатаКонцаПериода>
<КоличествоЛьготныхСоставляющих>1</КоличествоЛьготныхСоставляющих>
<ЛьготныйСтаж>
	<НомерСтроки>1</НомерСтроки>
	<ОсобенностиУчета>
		<ДекретДети>ДЛДЕТИ</ДекретДети>
	</ОсобенностиУчета>
</ЛьготныйСтаж>
</СтажевыйПериод>
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Валидация XML по XSD
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]