001/**
002 *
003 * Copyright © 2014-2019 Florian Schmaus
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 *     http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018package org.jivesoftware.smack.packet;
019
020/**
021 * Interface to represent a XML element. This is similar to {@link ExtensionElement}, but does not carry a single
022 * namespace, but instead is used with multiple namespaces. Examples for this include MUC's <destroy/> element.
023 * <p>
024 * Please note that usage of this interface is <b>discouraged</b>. The reason is that every XML element is fully
025 * qualified, i.e., it is qualified by a namespace. The namespace may not be explicitly given, but instead, is inherited
026 * from an outer element. Use {@link FullyQualifiedElement} instead when possible.
027 * </p>
028 */
029public interface NamedElement extends Element {
030
031    /**
032     * Returns the root element name.
033     *
034     * @return the element name.
035     */
036    String getElementName();
037
038}