Проверьте XSD с XML - PullRequest
       4

Проверьте XSD с XML

0 голосов
/ 11 июня 2010

Я хочу знать, как проверять XML с помощью XSD. XML не типа элемента, а сложного типа. Так как метод validate класса validator сравнивает только тип элемента.

Итак, в основном я хочу проверить сложный тип XSD с помощью XML.

, например

Базовый XSD ниже

xs:element name="Customer">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Dob" type="xs:date" />
      <xs:element name="Address">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Line1" type="xs:string" />
            <xs:element name="Line2" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Мы можем предположить, что у нас есть несколько сложных типов в элементе Customer.

МОЙ XML -

<Address> 
    <Line1>34 thingy street, someplace</Line1> 
    <Line2>sometown, w1w8uu </Line2>
</Address>

Как я проверяю свой XML с помощью XSD. Пожалуйста, оставьте свои предложения в Java

1 Ответ

1 голос
/ 11 июня 2010

Что-то вроде

import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;

//  .....


    try {
        File xmlFile // read XML file

        File xsdFile // read XSD file

        Schema schema = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(xsdFile);
        Validator validator = schema.newValidator();
        validator.validate(new StreamSource(xmlFile));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SAXException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...