示例#1
0
 private void addCrossImports(XmlSchema schema, XmlSchemaContentModel contentModel) {
   if (contentModel == null) {
     return;
   }
   XmlSchemaContent content = contentModel.getContent();
   if (content == null) {
     return;
   }
   if (content instanceof XmlSchemaComplexContentExtension) {
     XmlSchemaComplexContentExtension extension = (XmlSchemaComplexContentExtension) content;
     XmlSchemaUtils.addImportIfNeeded(schema, extension.getBaseTypeName());
     addCrossImportsAttributeList(schema, extension.getAttributes());
     XmlSchemaParticle particle = extension.getParticle();
     if (particle instanceof XmlSchemaSequence) {
       addCrossImports(schema, (XmlSchemaSequence) particle);
     } else if (particle instanceof XmlSchemaChoice) {
       addCrossImports(schema, (XmlSchemaChoice) particle);
     } else if (particle instanceof XmlSchemaAll) {
       addCrossImports(schema, (XmlSchemaAll) particle);
     }
   } else if (content instanceof XmlSchemaComplexContentRestriction) {
     XmlSchemaComplexContentRestriction restriction = (XmlSchemaComplexContentRestriction) content;
     XmlSchemaUtils.addImportIfNeeded(schema, restriction.getBaseTypeName());
     addCrossImportsAttributeList(schema, restriction.getAttributes());
   } else if (content instanceof XmlSchemaSimpleContentExtension) {
     XmlSchemaSimpleContentExtension extension = (XmlSchemaSimpleContentExtension) content;
     XmlSchemaUtils.addImportIfNeeded(schema, extension.getBaseTypeName());
     addCrossImportsAttributeList(schema, extension.getAttributes());
   } else if (content instanceof XmlSchemaSimpleContentRestriction) {
     XmlSchemaSimpleContentRestriction restriction = (XmlSchemaSimpleContentRestriction) content;
     XmlSchemaUtils.addImportIfNeeded(schema, restriction.getBaseTypeName());
     addCrossImportsAttributeList(schema, restriction.getAttributes());
   }
 }
示例#2
0
  private void addCrossImportsType(XmlSchema schema, XmlSchemaType schemaType) {
    // the base type might cross schemas.
    if (schemaType instanceof XmlSchemaComplexType) {
      XmlSchemaComplexType complexType = (XmlSchemaComplexType) schemaType;
      XmlSchemaUtils.addImportIfNeeded(schema, complexType.getBaseSchemaTypeName());
      addCrossImports(schema, complexType.getContentModel());
      addCrossImportsAttributeList(schema, complexType.getAttributes());
      // could it be a choice or something else?

      if (complexType.getParticle() instanceof XmlSchemaChoice) {
        XmlSchemaChoice choice = (XmlSchemaChoice) complexType.getParticle();
        addCrossImports(schema, choice);
      } else if (complexType.getParticle() instanceof XmlSchemaAll) {
        XmlSchemaAll all = (XmlSchemaAll) complexType.getParticle();
        addCrossImports(schema, all);
      } else if (complexType.getParticle() instanceof XmlSchemaSequence) {
        XmlSchemaSequence sequence = (XmlSchemaSequence) complexType.getParticle();
        addCrossImports(schema, sequence);
      }
    }
  }