private void handleContainer(XSDModelGroup xsdModelGroup) {
    for (Iterator i = xsdModelGroup.getParticles().iterator(); i.hasNext(); ) {
      XSDParticle childXSDParticle = (XSDParticle) i.next();
      XSDTerm childXSDTerm = childXSDParticle.getTerm();

      if (childXSDTerm instanceof XSDElementDeclaration) {
        XSDElementDeclaration eldeclaration = (XSDElementDeclaration) childXSDTerm;
        if (!this.tags.containsKey(getFullDeclarationName(eldeclaration))) {
          this.handleLeaf(eldeclaration);
          this.handleElementDeclaration(eldeclaration);
        }
      } else if (childXSDTerm instanceof XSDModelGroup) {
        this.handleContainer((XSDModelGroup) childXSDTerm);
      }
    }
  }
Beispiel #2
0
  protected Node processModelGroup(XSDModelGroup group, Node parentNode)
      throws RepositoryException {
    if (group == null) {
      return null;
    }
    XSDCompositor compositor = group.getCompositor();
    String primaryTypeName = getPrimaryTypeFromCompositor(compositor);

    Node childNode = parentNode.addNode(primaryTypeName, primaryTypeName);
    @SuppressWarnings("unchecked")
    List<XSDParticle> particles = group.getParticles();
    for (XSDParticle particle : particles) {
      processParticle(particle, childNode);
    }
    processNonSchemaAttributes(group, childNode);
    return childNode;
  }