예제 #1
0
  private Definition parseEvent(XMLEvent event, Definition def) {
    StartElement se = event.asStartElement();
    String elementName = se.getName().getLocalPart();
    if (elementName.equals("catalog")) {
      return null;
    }

    Iterator<Attribute> attributes = se.getAttributes();

    if (def == null) {
      Attribute id = attributes.next();
      if (id.getName().toString() != ID) {
        throw new RuntimeException(
            "At line "
                + event.getLocation().getLineNumber()
                + ", problem with definition '"
                + elementName
                + "'. The first attribute of a definition must be called '"
                + ID
                + "'.");
      }
      def = new Definition(elementName, id.getValue());
      // LogUtil.logger.info("def cree "+def.type+" - "+def.id);
    } else {
      DefElement de = new DefElement(elementName);
      while (attributes.hasNext()) {
        Attribute a = attributes.next();
        de.addVal(a.getName().toString(), a.getValue());
      }
      def.getElements().add(de);
      // LogUtil.logger.info("    element ajouté : "+de.name+" - "+de.getVal());
    }
    return def;
  }