code: private Attributes splitAttributes(final NamedNodeMap map) {
          Attr sLoc = (Attr) map.getNamedItemNS(XMLConstants
                                                .W3C_XML_SCHEMA_INSTANCE_NS_URI,
                                                "schemaLocation");
          Attr nNsLoc = (Attr) map.getNamedItemNS(XMLConstants
                                                  .W3C_XML_SCHEMA_INSTANCE_NS_URI,
                                                  "noNamespaceSchemaLocation");
          Attr type = (Attr) map.getNamedItemNS(XMLConstants
                                                  .W3C_XML_SCHEMA_INSTANCE_NS_URI,
                                                  "type");
          List<Attr> rest = new LinkedList<Attr>();
          final int len = map.getLength();
          for (int i = 0; i < len; i++) {
              Attr a = (Attr) map.item(i);
              if (!XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(a.getNamespaceURI())
                  && a != sLoc && a != nNsLoc && a != type
                  && getAttributeFilter().test(a)) {
                  rest.add(a);
              }
          }
          return new Attributes(sLoc, nNsLoc, type, rest);
      }
docs: Separates XML namespace related attributes from "normal" attributes.xb