Как установить схему из ресурсов на DOM "Документ" - PullRequest
1 голос
/ 05 декабря 2011

Я ничего не могу найти по этому поводу. Я просто хочу выяснить, существует ли конкретная строка в моем объекте 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

так что мои вопросы:

  1. где я должен поместить схему XML в мои ресурсы (или - я должен поставить XML-схема в моих ресурсах, если нет, что мне делать?)
  2. почему SchemaFactory.newInstance выдает ошибку и как мне это сделать используйте его правильно
  3. как загрузить источник схемы из моих ресурсов и другие строки в коде правильные?
...