code: protected String getTargetUriOutOfScope(Target target, Object[] contextSpecificObjects) {
  		List<StructuralNode> nodes = target.getStartNodes();
  		if (nodes != null) {
  			for (StructuralNode node : nodes) {
  				if (node == null) {
  					continue;
  				}
  				if (node instanceof StructuralSiteNode) {
  					SiteNode siteNode = ((StructuralSiteNode) node).getSiteNode();
  					if (!siteNode.isIncludedInScope()) {
  						return node.getURI().toString();
  					}
  				} else {
  					String uri = node.getURI().toString();
  					if (!isTargetUriInScope(uri)) {
  						return uri;
  					}
  				}
  			}
  		}
  		if (contextSpecificObjects != null) {
  			for (Object obj : contextSpecificObjects) {
  				if (obj instanceof URI) {
  					String uri = ((URI) obj).toString();
  					if (!isTargetUriInScope(uri)) {
  						return uri;
  					}
  				}
  			}
  		}
  		return null;
  	}
docs: Returns the first URI that is out of scope in the given {@code target} or {@code contextSpecificObjects}.
  
  @param target the target that will be checked
  @param contextSpecificObjects other {@code Objects} used to enhance the target
  @return a {@code String} with the first URI out of scope, {@code null} if none found
  @since 2.5.0
  @see Session#isInScope(String)