diff --git a/src/modules/dbxmlcontainers.py b/src/modules/dbxmlcontainers.py index 026a192..2e85534 100644 --- a/src/modules/dbxmlcontainers.py +++ b/src/modules/dbxmlcontainers.py @@ -224,6 +224,7 @@ class DbXmlContainerHolder(dataholders.DataHolder): """ returns a tuple (id, name) list of all documents id is the Uri of the document + name is the dbxml:label of the document (if so defined) argument xpathExpression can be specified to restrict the list """ @@ -233,9 +234,13 @@ class DbXmlContainerHolder(dataholders.DataHolder): for value in results: document = value.asDocument() uri = "%s/%s" % (uriBase, document.getName()) - name = document.getName() + labelValue = dbxml.XmlValue("") + if document.getMetaData("http://www.sleepycat.com/2002/dbxml", "label", labelValue): + label = labelValue.asString() + else: + label = document.getName() documentList.append( - (uri, name) + (uri, label) ) return documentList @@ -479,14 +484,15 @@ class DbXmlDocumentStation(stations.AbstractStation, documents.AbstractDocument) def save(self): self.dbxmlDocument.setContent(self.serialize()) container = self.getParent().getContainer() + element = self.getRootElement() + try: + label = element.getLabel() + except AttributeError: + pass + else: + self.dbxmlDocument.setMetaData("http://www.sleepycat.com/2002/dbxml", "label", dbxml.XmlValue(label)) if self.isTemporary: name = self.getPublicName() - if name is None: - element = self.getRootElement() - try: - name = element.getLabel() - except AttributeError: - pass if name is not None: name = strings.simplify(name) self.dbxmlDocument.setName(name)