- DavXmlElement.propstat.startElement(xsWriter);
- {
- DavXmlElement.prop.startElement(xsWriter);
- if (!davResponse.getResourceTypes().isEmpty() || davResponse.isCollection()) {
- DavXmlElement.resourcetype.startElement(xsWriter);
- if (davResponse.isCollection())
- DavXmlElement.collection.emptyElement(xsWriter);
- for (QName resourceType : davResponse.getResourceTypes()) {
- xsWriter.writeEmptyElement(resourceType.getNamespaceURI(), resourceType.getLocalPart());
- }
- xsWriter.writeEndElement();// resource type
- }
- for (QName key : davResponse.getPropertyNames()) {
- if (propname) {
- xsWriter.writeEmptyElement(key.getNamespaceURI(), key.getLocalPart());
- } else {
- xsWriter.writeStartElement(key.getNamespaceURI(), key.getLocalPart());
- xsWriter.writeCData(davResponse.getProperties().get(key));
- xsWriter.writeEndElement();
+ for (HttpStatus status : davResponse.getStatuses()) {
+ DavXmlElement.propstat.startElement(xsWriter);
+ {
+ DavXmlElement.prop.startElement(xsWriter);
+
+ // resourcetype
+ if (HttpStatus.OK.equals(status))
+ if (propname) {
+ DavXmlElement.resourcetype.emptyElement(xsWriter);
+ } else {
+ if (!davResponse.getResourceTypes().isEmpty() || davResponse.isCollection()) {
+ DavXmlElement.resourcetype.startElement(xsWriter);
+ if (davResponse.isCollection())
+ DavXmlElement.collection.emptyElement(xsWriter);
+ for (QName resourceType : davResponse.getResourceTypes()) {
+ xsWriter.writeEmptyElement(resourceType.getNamespaceURI(),
+ resourceType.getLocalPart());
+ }
+ xsWriter.writeEndElement();// resource type
+ }
+ }
+
+ properties: for (QName key : davResponse.getPropertyNames(status)) {
+ if (DavXmlElement.resourcetype.qName().equals(key))
+ continue properties;
+
+ if (propname) {
+ xsWriter.writeEmptyElement(key.getNamespaceURI(), key.getLocalPart());
+ } else {
+ xsWriter.writeStartElement(key.getNamespaceURI(), key.getLocalPart());
+ xsWriter.writeCData(davResponse.getProperties().get(key));
+ xsWriter.writeEndElement();
+ }