/*
 * Copyright 2004,2005 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 
 #ifndef AXIS2_OM_H
 #define AXIS2_OM_H
 
 /**
* @file axis2_constants.h
* @brief defines the constants used in om
*/

#define AXIS2_OM_ARRAY_ITEM_NSURI   "http://axis.apache.org/encoding/Arrays"

#define AXIS2_OM_ARRAY_ITEM_NSPREFIX "arrays"

#define AXIS2_OM_ARRAY_ITEM_QNAME "arrays:http://axis.apache.org/encoding/Arrays"

#define AXIS2_OM_DEFAULT_CHARSET_ENCODING "utf-8"

#define AXIS2_OM_DEFAULT_XML_VERSION "1.0"

#define AXIS2_OM_XMLNS_URI "http://www.w3.org/XML/1998/namespace"

#define AXIS2_OM_XMLNS_NS_URI "http://www.w3.org/2000/xmlns/"

#define AXIS2_OM_XMLNS_NS_PREFIX "xmlns"

#define AXIS2_OM_XMLNS_PREFIX "xml"

#endif /* AXIS2_OM_H */
