Example #1
0
  public static byte[] getDCBytes(DigitalItemInfo item, Datastream ds) {
    DatastreamType dcDatastream = DatastreamType.Factory.newInstance();
    dcDatastream.setID("DC");
    dcDatastream.setSTATE(StateType.A);
    dcDatastream.setCONTROLGROUP(DatastreamType.CONTROLGROUP.X);

    DatastreamVersionType dcDatastreamVersion = dcDatastream.addNewDatastreamVersion();
    dcDatastreamVersion.setID(ds.getID());
    dcDatastreamVersion.setMIMETYPE(ds.getMIMEType());
    dcDatastreamVersion.setLABEL(ds.getLabel());

    XmlContentType xmlContent = dcDatastreamVersion.addNewXmlContent();

    Element dc = xmlContent.getDomNode().getOwnerDocument().createElementNS("oai_dc", "dc");

    // http://www.fedora.info/bugzilla/show_bug.cgi?id=153
    dc.setAttribute("xmlns:oai_dc", "http://www.openarchives.org/OAI/2.0/oai_dc/");
    dc.setAttribute("xmlns:dc", "http://purl.org/dc/elements/1.1/");

    Element dcTitle = xmlContent.getDomNode().getOwnerDocument().createElementNS("dc", "title");
    Text textNode = xmlContent.getDomNode().getOwnerDocument().createTextNode(item.getTitle());
    dcTitle.appendChild(textNode);
    dc.appendChild(dcTitle);

    Element dcCreator = xmlContent.getDomNode().getOwnerDocument().createElementNS("dc", "creator");
    textNode = xmlContent.getDomNode().getOwnerDocument().createTextNode(item.getCreator());
    dcCreator.appendChild(textNode);
    dc.appendChild(dcCreator);

    Element dcSubject = xmlContent.getDomNode().getOwnerDocument().createElementNS("dc", "subject");
    textNode = xmlContent.getDomNode().getOwnerDocument().createTextNode(item.getSubject());
    dcSubject.appendChild(textNode);
    dc.appendChild(dcSubject);

    Element dcDescription =
        xmlContent.getDomNode().getOwnerDocument().createElementNS("dc", "description");
    textNode = xmlContent.getDomNode().getOwnerDocument().createTextNode(item.getDescription());
    dcDescription.appendChild(textNode);
    dc.appendChild(dcDescription);

    Element dcPublisher =
        xmlContent.getDomNode().getOwnerDocument().createElementNS("dc", "publisher");
    textNode = xmlContent.getDomNode().getOwnerDocument().createTextNode(item.getPublisher());
    dcPublisher.appendChild(textNode);
    dc.appendChild(dcPublisher);

    Element dcIdentifier =
        xmlContent.getDomNode().getOwnerDocument().createElementNS("dc", "identifier");
    textNode = xmlContent.getDomNode().getOwnerDocument().createTextNode(item.getTitle());
    dcIdentifier.appendChild(textNode);
    dc.appendChild(dcIdentifier);

    xmlContent.getDomNode().appendChild(dc);

    return xmlContent.toString().getBytes();
  }
  private void addDCDatastream(DigitalObjectDocument.DigitalObject dobj) {
    DatastreamType ds = dobj.addNewDatastream();
    ds.setID("DC");
    ds.setCONTROLGROUP(DatastreamType.CONTROLGROUP.X);
    ds.setSTATE(StateType.A);

    DatastreamVersionType dsv = ds.addNewDatastreamVersion();
    dsv.setID("DC.0");
    dsv.setFORMATURI("http://www.openarchives.org/OAI/2.0/oai_dc/");
    dsv.setMIMETYPE("text/xml");
    dsv.setLABEL("Dublin Core Record for this object");

    XmlContentType content = dsv.addNewXmlContent();
    DcDocument dcDocument = getDcDocument();
    content.set(dcDocument);
  }
  private void addRELSEXTDatastream(DigitalObjectDocument.DigitalObject dobj) {
    DatastreamType datastream = dobj.addNewDatastream();
    datastream.setID("RELS-EXT");
    datastream.setSTATE(StateType.A);
    datastream.setCONTROLGROUP(DatastreamType.CONTROLGROUP.X);

    DatastreamVersionType version = datastream.addNewDatastreamVersion();
    version.setID("RELS-EXT.0");
    version.setMIMETYPE("application/rdf+xml");
    version.setFORMATURI("info:fedora/fedora-system:FedoraRELSExt-1.0");
    version.setLABEL("RDF Statements about this object");

    XmlContentType content = version.addNewXmlContent();
    RDFDocument rdfDocument = getRDFDescription();
    content.set(rdfDocument);
  }
  private void addQucosaXMLContentDatastream(DigitalObjectDocument.DigitalObject dobj)
      throws ParserConfigurationException {
    DatastreamType ds = dobj.addNewDatastream();
    ds.setID("QUCOSA-XML");
    ds.setCONTROLGROUP(DatastreamType.CONTROLGROUP.X);
    ds.setSTATE(StateType.A);

    DatastreamVersionType dsv = ds.addNewDatastreamVersion();
    dsv.setID("QUCOSA-XML.0");
    dsv.setMIMETYPE("text/xml");
    dsv.setLABEL("Qucosa XML Record for this Object (Opus4-XMLv2)");

    XmlContentType content = dsv.addNewXmlContent();

    // Workaround for https://issues.apache.org/jira/browse/XMLBEANS-100
    // XMLBeans does not work with jdk1.6 as calls made to methods within XObj.java
    // return with a runtime: "java.lang.RuntimeException: DOM Level 3 Not implemented"
    Node childNode =
        content
            .getDomNode()
            .getOwnerDocument()
            .importNode(qucosaXmlDocument.getDocumentElement(), true);
    content.getDomNode().appendChild(childNode);
  }