예제 #1
0
  @Override
  public void marshal(Element root, Document doc) {

    // set up namespace declarations and schema references
    root.setAttributeNS(NS.XMLNS.ns(), "xmlns:premis", NS.PREMIS.ns());
    root.setAttributeNS(NS.XMLNS.ns(), "xmlns:xlink", NS.XLINK.ns());
    root.setAttributeNS(NS.XMLNS.ns(), "xmlns:xsi", NS.XSI.ns());
    root.setAttributeNS(NS.XSI.ns(), "xsi:schemaLocation", NS.PREMIS.schemaLoc());

    if (version != null && !version.isEmpty()) {
      root.setAttribute("version", version);
    } else {
      root.setAttribute("version", "2.2");
    }
    // sequence is important!
    for (PremisObject object : getObject()) {
      Element objectE = doc.createElementNS(NS.PREMIS.ns(), "premis:object");
      object.marshal(objectE, doc);
      root.appendChild(objectE);
    }
    for (PremisEvent event : getEvent()) {
      Element eventE = doc.createElementNS(NS.PREMIS.ns(), "premis:event");
      event.marshal(eventE, doc);
      root.appendChild(eventE);
    }
    for (PremisAgent agent : getAgent()) {
      Element agentE = doc.createElementNS(NS.PREMIS.ns(), "premis:agent");
      agent.marshal(agentE, doc);
      root.appendChild(agentE);
    }
    for (PremisRights rights : getRights()) {
      Element rightsE = doc.createElementNS(NS.PREMIS.ns(), "premis:rights");
      rights.marshal(rightsE, doc);
      root.appendChild(rightsE);
    }
  }