Uploaded image for project: 'Tuscany'
  1. Tuscany
  2. TUSCANY-2724

Allow to define multiple XSD files with same namespace in same XSDHelper.INSTANCE

    XMLWordPrintableJSON

Details

    Description

      Currently it is not possible to define multiple XSD files in same namespace in same helper context even if extensible namespaces set to true. The last XSD "overwrites" previous.

      Here is patch for /tuscany-sdo-impl/src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java method define().
      It use copy of the original "targetNamespaceToEPackageMap" to track newly defined types instead of "touching" ecoreBuilder.

      Index: src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java
      ===================================================================
      — src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java
      +++ src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java (working copy)
      @@ -239,7 +239,7 @@
      String targetNamespace = schema.getTargetNamespace();

      EPackage ePackage = extendedMetaData.getPackage(targetNamespace);

      if (extensibleNamespaces || ePackage == null || TypeHelperImpl.getBuiltInModels().contains(ePackage)) {

      • Map targetNamespaceToEPackageMap = ecoreBuilder.getTargetNamespaceToEPackageMap();

      + Map targetNamespaceToEPackageMap = new HashMap(ecoreBuilder.getTargetNamespaceToEPackageMap());

      targetNamespaceToEPackageMap.remove(targetNamespace);

      Collection originalEPackages = new HashSet(targetNamespaceToEPackageMap.values());

      ==========

      Attachments

        Activity

          People

            Unassigned Unassigned
            ciand7 Andrey Utkin
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: