Отображение содержимого коллекции xml с помощью XQuery

Я должен использовать базу данных xml (Sedna) для хранения и извлечения объектов Java. Каждый пользовательский класс в проекте хранится в коллекции. У меня следующая проблема: я не уверен, как объекты записываются в коллекцию. То есть я не знаю их точную структуру xml, поэтому я не могу сделать правильный запрос к ним.

Есть ли запрос, который для данной коллекции покажет мне содержимое коллекции?

Host h = new Host();
h.name = "test1";
h.freeSpace = 32;
String id1 = this.addHost(h);

//addHost method
try
{
  Collection c = this.findCollection("Hosts"); //gives me the Hosts collection
  if (c == null)
    return null;

  h.id = c.createId();
  BinaryResource br = (BinaryResource) c.createResource(h.id, BinaryResource.RESOURCE_TYPE);
  br.setContent(h);
  c.storeResource(br);
  return h.id;

} catch (XMLDBException e) {
  System.err.println("Error adding Host entry into the database: " + e.getMessage());
  return null;
}

person Lupuss    schedule 10.04.2011    source источник


Ответы (1)


Для просмотра структуры (схемы) вашей базы данных или коллекции или документа запросите один из следующих системных документов (Получение метаданных):

  • $schema – описательная схема всех документов и коллекций с некоторой информацией, относящейся к схеме;

  • $schema_<name> – описательная схема документа или коллекции с именем ;

Например, запустите se_term и выполните doc('$schema_test'), чтобы получить структуру «тестового» документа/коллекции.

Как вы храните свои ресурсы? Пожалуйста, дайте нам фрагмент кода. Очень сложно даже понять, какой API вы используете (XML:DB, XQJ, собственный Java API Sedna).

person Shcheklein    schedule 12.04.2011