我必须使用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;
}
查看数据库或集合或文档的结构(模式),查询以下系统文档之一(检索元数据):
-
$schema
-描述性模式所有的文件和收藏一些模式相关信息; -
$schema_<name>
- the文档或的描述性模式
例如,运行se_term
,执行doc('$schema_test')
,得到test文档/集合的结构。
你如何存储你的资源?请给我们一段代码。甚至很难理解使用哪一种API (XML:DB, XQJ,原生Sedna Java API)。