Пример #1
0
  private int determineMinMaxForSample(SchemaParticle sp, XmlCursor xmlc) {
    int minOccurs = sp.getIntMinOccurs();
    int maxOccurs = sp.getIntMaxOccurs();

    if (minOccurs == maxOccurs) return minOccurs;

    if (minOccurs == 0 && ignoreOptional) return 0;

    int result = minOccurs;
    if (result == 0) result = 1;

    if (sp.getParticleType() != SchemaParticle.ELEMENT) return result;

    // it probably only makes sense to put comments in front of individual
    // elements that repeat

    if (!_skipComments) {
      if (sp.getMaxOccurs() == null) {
        // xmlc.insertComment("The next " + getItemNameOrType(sp, xmlc) + "
        // may
        // be repeated " + minOccurs + " or more times");
        if (minOccurs == 0) xmlc.insertComment("Zero or more repetitions:");
        else xmlc.insertComment(minOccurs + " or more repetitions:");
      } else if (sp.getIntMaxOccurs() > 1) {
        xmlc.insertComment(
            minOccurs + " to " + String.valueOf(sp.getMaxOccurs()) + " repetitions:");
      } else {
        xmlc.insertComment("Optional:");
      }
    }

    return result;
  }