docs: @Override
      public void processXML() throws InjectionException
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "processXML : " + ivNameSpaceConfig.getPersistenceUnitRefs());
  
          // d416151.3 Begins
          List<? extends PersistenceUnitRef> pUnitRefs = ivNameSpaceConfig.getPersistenceUnitRefs();
          if (pUnitRefs != null && pUnitRefs.size() > 0)
          {
              for (PersistenceUnitRef pUnitRef : pUnitRefs)
              {
                  if (isTraceOn && tc.isDebugEnabled())
                      Tr.debug(tc, " pUnitRef = " + pUnitRef);
  
                  // If XML has previously been read and an injection binding with the same
                  // jndi name has been created, get the current injection binding and merge
                  // the new PersistenceUnit Ref into it.
                  String jndiName = pUnitRef.getName();
                  InjectionBinding<PersistenceUnit> injectionBinding = ivAllAnnotationsCollection.get(jndiName);
                  if (injectionBinding != null)
                  {
                      ((JPAPUnitInjectionBinding) injectionBinding).merge(pUnitRef);
                  }
                  else
                  {
                      injectionBinding = new JPAPUnitInjectionBinding(pUnitRef, ivNameSpaceConfig); // d662814
                      addInjectionBinding(injectionBinding);
                  }
  
                  ((AbstractJPAInjectionBinding<?>) injectionBinding).addRefComponents(jndiName); // F743-30682
  
                  // Process any injection-targets that may be specified.    d429866.1
                  // The code takes into account the possibility of duplicate InjectionTargets
                  // and will only add if not already present, regardless of whether this is
                  // a newly created binding, or a second one being merged.
                  List<InjectionTarget> targets = pUnitRef.getInjectionTargets();
                  if (targets != null && !targets.isEmpty())
                  {
                      for (InjectionTarget target : targets)
                      {
                          String injectionClassName = target.getInjectionTargetClassName();
                          String injectionName = target.getInjectionTargetName();
                          injectionBinding.addInjectionTarget(EntityManagerFactory.class, injectionName, injectionClassName);
                      }
                  }
              }
          }
          // d416151.3 Ends
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "processXML : " + ivAllAnnotationsCollection.size());
      }