class ActiveFedora::RDFXMLWriter

def subject_not_done(subject, parent_node)

def subject_not_done(subject, parent_node)
  subject_done(subject)
  properties = @graph.properties(subject)
  add_debug {"subject: #{subject.inspect}, props: #{properties.inspect}"}
  @graph.query(:subject => subject).each do |st|
    raise RDF::WriterError, "Illegal use of predicate #{st.predicate.inspect}, not supported in RDF/XML" unless st.predicate.uri?
  end
  prop_list = order_properties(properties)
  add_debug {"=> property order: #{prop_list.to_sentence}"}
  qname = "rdf:Description"
  prefixes[:rdf] = RDF.to_uri
  node = Nokogiri::XML::Element.new(qname, parent_node.document)
  
  if subject.is_a?(RDF::Node)
    # Only need nodeID if it's referenced elsewhere
    if ref_count(subject) > (@depth == 0 ? 0 : 1)
      node["rdf:nodeID"] = subject.id
    else
      node.add_child(Nokogiri::XML::Comment.new(node.document, "Serialization for #{subject}")) if RDF::RDFXML::debug?
    end
  else
    node["rdf:about"] = relativize(subject)
  end
  prop_list.each do |prop|
    prop_ref = RDF::URI.intern(prop)
    
    properties[prop].each do |object|
      raise RDF::WriterError, "Illegal use of object #{object.inspect}, not supported in RDF/XML" unless object.resource? || object.literal?
      @depth += 1
      predicate(prop_ref, object, node, properties[prop].length == 1)
      @depth -= 1
    end
  end
  node
end