/**
   * @param property
   * @param contentHandler the SAX content handler for which SAX events will be invoked as the XML
   *     document is created.
   * @param skipBinary if <code>true</code>, indicates that binary properties should not be exported
   * @throws SAXException if an exception occurs during generation of the XML document
   * @throws RepositoryException if an exception occurs accessing the content repository
   */
  private void exportProperty(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;

    Name propertyName = prop.name();
    if (SPECIAL_PROPERTY_NAMES.contains(propertyName)) {
      return;
    }

    emitProperty(property, contentHandler, skipBinary);
  }