protected void assertAttributes(String element, String... attributes)
      throws DTDTransformException {
    // find target element
    ElementElement targetElement = null;

    for (ElementElement e : transformer.getElements()) {
      if (e.getName().equals(element)) {
        targetElement = e;
        break;
      }
    }

    assertNotNull(targetElement);
    // assertEquals(attributes.length, targetElement.getAttributes().size());

    // generate set of attribute name
    Set<String> names = new HashSet<String>();

    for (String name : targetElement.getAttributes()) {
      names.add(name);
    }

    // assert
    for (String name : attributes) {
      assertTrue("Did not find attribute: " + name, names.contains(name));
    }
  }
  protected void assertElements(String... elements) throws DTDTransformException {
    // gather element names for easy lookup
    List<ElementElement> elementObjects = transformer.getElements();
    assertNotNull("Was unable to determine elements", elementObjects);
    Set<String> names =
        new HashSet<String>(
            CollectionsUtil.map(
                elementObjects,
                new IMap<ElementElement, String>() {
                  public String map(ElementElement item) {
                    return item.getName();
                  }
                }));

    // assert the element name list
    for (String name : elements) {
      assertTrue("Did not find element: " + name, names.contains(name));
    }
  }
 private void transform(String path) throws DTDTransformException {
   transformer.transform(getContent(path));
 }