+
+// class JcrKeyIterator implements Iterator<QName> {
+// private final PropertyIterator propertyIterator;
+//
+// protected JcrKeyIterator(PropertyIterator propertyIterator) {
+// this.propertyIterator = propertyIterator;
+// }
+//
+// @Override
+// public boolean hasNext() {
+// return propertyIterator.hasNext();
+// }
+//
+// @Override
+// public QName next() {
+// Property property = null;
+// try {
+// property = propertyIterator.nextProperty();
+// // TODO map standard property names
+// return NamespaceUtils.parsePrefixedName(provider, property.getName());
+// } catch (RepositoryException e) {
+// throw new JcrException("Cannot retrieve property " + property, null);
+// }
+// }
+//
+// }