docs: private AttributesImpl validateScope(final Attributes atts, final AttributesImpl modified) {
          AttributesImpl res = modified;
          final String scope = atts.getValue(ATTRIBUTE_NAME_SCOPE);
          final URI href = toURI(atts.getValue(ATTRIBUTE_NAME_HREF));
          if (scope == null && href != null && href.isAbsolute()) {
              final boolean sameScheme = Objects.equals(currentFile.getScheme(), href.getScheme());
              final boolean sameAuthority = Objects.equals(currentFile.getRawAuthority(), href.getRawAuthority());
              if (!(sameScheme && sameAuthority)) {
                  switch (processingMode) {
                      case LAX:
                          if (res == null) {
                              res = new AttributesImpl(atts);
                          }
                          addOrSetAttribute(res, ATTRIBUTE_NAME_SCOPE, ATTR_SCOPE_VALUE_EXTERNAL);
                          logger.warn(MessageUtils.getMessage("DOTJ075W", href.toString()).setLocation(locator).toString());
                          break;
                      default:
                          logger.warn(MessageUtils.getMessage("DOTJ076W", href.toString()).setLocation(locator) + ", using invalid value.");
                          break;
                  }
              }
          }
          return res;
      }