docs: private void emitProperty( Property property,
                                 ContentHandler contentHandler,
                                 boolean skipBinary ) throws RepositoryException, SAXException {
          assert property instanceof AbstractJcrProperty : "Illegal attempt to use " + getClass().getName()
                                                           + " on non-ModeShape property";
  
          AbstractJcrProperty prop = (AbstractJcrProperty)property;
  
          // first set the property sv:name attribute
          AttributesImpl propAtts = new AttributesImpl();
          propAtts.addAttribute(JcrSvLexicon.NAME.getNamespaceUri(),
                                JcrSvLexicon.NAME.getLocalName(),
                                getPrefixedName(JcrSvLexicon.NAME),
                                PropertyType.nameFromValue(PropertyType.STRING),
                                prop.getName());
  
          // and it's sv:type attribute
          propAtts.addAttribute(JcrSvLexicon.TYPE.getNamespaceUri(),
                                JcrSvLexicon.TYPE.getLocalName(),
                                getPrefixedName(JcrSvLexicon.TYPE),
                                PropertyType.nameFromValue(PropertyType.STRING),
                                org.modeshape.jcr.api.PropertyType.nameFromValue(prop.getType()));
  
          // and it's sv:multiple attribute
          if (prop.isMultiple()) {
              propAtts.addAttribute(JcrSvLexicon.TYPE.getNamespaceUri(),
                                    JcrSvLexicon.TYPE.getLocalName(),
                                    getPrefixedName(JcrSvLexicon.MULTIPLE),
                                    PropertyType.nameFromValue(PropertyType.BOOLEAN),
                                    Boolean.TRUE.toString());
          }
  
          // output the sv:property element
          startElement(contentHandler, JcrSvLexicon.PROPERTY, propAtts);
  
          // then output a sv:value element for each of its values
          if (prop instanceof JcrMultiValueProperty) {
              Value[] values = prop.getValues();
              for (Value value : values) {
                  emitValue(value, contentHandler, property.getType(), skipBinary);
              }
          } else {
              emitValue(property.getValue(), contentHandler, property.getType(), skipBinary);
          }
  
          // end the sv:property element
          endElement(contentHandler, JcrSvLexicon.PROPERTY);
      }