2014-12-18 5 views
1

У меня есть метод, который проверяет XML-документ на XSD.Проверить отдельный элемент на xsd

public void validateAgainstXSD(String xsdPath, Document document) throws SAXException, IOException 
{ 
    SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
    Schema schema = factory.newSchema(new StreamSource(new File(xsdPath))); 
    Validator validator = schema.newValidator(); 
    validator.validate(new DOMSource(document)); 
} 

Этот метод работает нормально. Сейчас я пытаюсь проверить отдельные элементы -

NodeList nodeList = doc.getElementsByTagName(rootTag); 
for(int i = 0 ; i < nodeList.getLength();i++) 
{ 
    Element element = (Element)nodeList.item(i); 
    //Validate only this element 
} 

И я не знаю. Может кто-нибудь, пожалуйста, помогите мне?

ответ

1

Validator.validate(Source source) принимает javax.xml.transform.Source,

Параметры:

источник - XML ​​для проверки. Должен быть XML-документ или элемент XML и не должен иметь значение NULL.

Так что, если вы получили ваш код работает для документа,

validator.validate(new DOMSource(document)); 

вы должны быть в состоянии заменить элемент вместо документа:

validator.validate(new DOMSource(element)); 

и подтверждение от этого должно начаться.

+0

Ох! Я этого не знал. Я должен был попробовать. Огромное спасибо. Я попробую и дам вам знать. – Kartic

+0

Это прекрасно работает. Благодаря! – Kartic

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