Я ничего не могу найти по этому поводу.
Я просто хочу выяснить, существует ли конкретная строка в моем объекте XML DOM (и более эффективно, чем прохождение всех узлов).
Для этого мне нужен атрибут ID, а для того, чтобы установить атрибут в качестве идентификатора, чтобы я мог использовать getElementById, мне нужно установить схему на моем DocumentBuilderFactory.
Итак ... Я создал XSD-файл в довольно случайном месте в моих ресурсах (папка с именем xml) - есть ли стандартное место для его размещения?
и я попробовал что-то вроде этого:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Source schemaSource = new StreamSource(getClass().getResourceAsStream("online_list_schema.xsd"));
Schema mySchema;
mySchema = factory.newSchema(schemaSource);
dbf.setSchema(mySchema);
да, я действительно не знаю, как использовать getResourceAsStream .. (почему он запрашивает Sting, а не Int?)
но давайте начнем с того, что
SchemaFactory.newInstance (XMLConstants.W3C_XML_SCHEMA_NS_URI);
генерирует ошибку, даже если она сама по себе ..
12-05 10: 00: 27.879: E / AndroidRuntime (996): вызвано:
java.lang.IllegalArgumentException: http://www.w3.org/2001/XMLSchema
так что мои вопросы:
- где я должен поместить схему XML в мои ресурсы (или - я должен поставить
XML-схема в моих ресурсах, если нет, что мне делать?)
- почему SchemaFactory.newInstance выдает ошибку и как мне это сделать
используйте его правильно
- как загрузить источник схемы из моих ресурсов и другие
строки в коде правильные?