View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one
    3    * or more contributor license agreements. See the NOTICE file
    4    * distributed with this work for additional information
    5    * regarding copyright ownership. The ASF licenses this file
    6    * to you under the Apache License, Version 2.0 (the
    7    * "License"); you may not use this file except in compliance
    8    * with the License. You may obtain a copy of the License at
    9    *
    10   * http://www.apache.org/licenses/LICENSE-2.0
    11   *
    12   * Unless required by applicable law or agreed to in writing,
    13   * software distributed under the License is distributed on an
    14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    15   * KIND, either express or implied. See the License for the
    16   * specific language governing permissions and limitations
    17   * under the License.
    18   */
    19
    20  package org.apache.ws.commons.schema.utils;
    21
    22  import org.w3c.dom.Element;
    23  import org.w3c.dom.Node;
    24
    25  public class XDOMUtil extends DOMUtil {
    26
    27      /**
    28       * Creates a new instance of XDOMUtil
    29       */
    30      private XDOMUtil() {
    31      }
    32
    33      public static Element getFirstChildElementNS(Node parent, String uri) {
    34
    35          // search for node
    36          Node child = parent.getFirstChild();
    37          while (child != null) {
    38              if (child.getNodeType() == Node.ELEMENT_NODE) {
    39                  String childURI = child.getNamespaceURI();
    40                  if (childURI != null && childURI.equals(uri)) {
    41                      return (Element) child;
    42                  }
    43              }
    44              child = child.getNextSibling();
    45          }
    46
    47          // not found
    48          return null;
    49
    50      }
    51
    52      public static Element getNextSiblingElementNS(Node node, String uri) {
    53          // search for node
    54          Node sibling = node.getNextSibling();
    55          while (sibling != null) {
    56              if (sibling.getNodeType() == Node.ELEMENT_NODE) {
    57                  String siblingURI = sibling.getNamespaceURI();
    58                  if (siblingURI != null && siblingURI.equals(uri)) {
    59                      return (Element) sibling;
    60                  }
    61              }
    62              sibling = sibling.getNextSibling();
    63          }
    64
    65          // not found
    66          return null;
    67
    68      }
    69
    70      public static boolean anyElementsWithNameNS(Element element, String uri, String name) {
    71      	for (Element el = getFirstChildElementNS(element, uri); el != null; el = XDOMUtil.getNextSiblingElementNS(el, uri)) {
    72      		if(el.getLocalName().equals(name) && el.getNamespaceURI().equals(uri)) {
    73      			return true;
    74      		}
    75      	}
    76      	return false;
    77      }
    78
    79
    80  }