/*
 * Portions of this file Copyright 1999-2005 University of Chicago
 * Portions of this file Copyright 1999-2005 The University of Southern California.
 *
 * This file or a portion of this file is licensed under the
 * terms of the Globus Toolkit Public License, found at
 * http://www.globus.org/toolkit/download/license.html.
 * If you redistribute this file, with or without
 * modifications, you must include this notice in the file.
 */

#ifndef _XSD_QNAME_H_
#define _XSD_QNAME_H_

#include "globus_common.h"

EXTERN_C_BEGIN

typedef struct xsd_QName_s
{
    char *                              Namespace;
    char *                              local;
} xsd_QName;

#include "globus_xsd_primitives.h"
#include "globus_soap_message_handle.h"

GLOBUS_XSD_DECLARE_TYPE_FUNCTIONS(xsd_QName);
GLOBUS_XSD_DECLARE_ATTR_FUNCTIONS(xsd_QName);
GLOBUS_XSD_DECLARE_LIST_FUNCTIONS(xsd_QName);
GLOBUS_XSD_DECLARE_LIST_ATTR_FUNCTIONS(xsd_QName);

int
xsd_QName_strcmp(
    char *                              s1,
    char *                              s2);

int
xsd_QName_keyeq(
    void *                              qname1,
    void *                              qname2);

int
xsd_QName_hash(
    void *                              qname,
    int                                 limit);

EXTERN_C_END

#endif /* _XSD_QNAME_H_ */
