2 * Copyright 2001-2006 Internet2
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
20 * Representing XML QNames
\r
23 #include "internal.h"
\r
26 using namespace xmltooling;
\r
28 QName::QName(const XMLCh* uri, const XMLCh* localPart, const XMLCh* prefix)
\r
30 #ifndef HAVE_GOOD_STL
\r
31 m_uri=m_prefix=m_local=NULL;
\r
33 setNamespaceURI(uri);
\r
34 setLocalPart(localPart);
\r
40 #ifndef HAVE_GOOD_STL
\r
41 XMLString::release(&m_uri);
\r
42 XMLString::release(&m_prefix);
\r
43 XMLString::release(&m_local);
\r
47 void QName::setPrefix(const XMLCh* prefix)
\r
49 #ifdef HAVE_GOOD_STL
\r
56 XMLString::release(&m_prefix);
\r
57 m_prefix=XMLString::replicate(prefix);
\r
61 void QName::setNamespaceURI(const XMLCh* uri)
\r
63 #ifdef HAVE_GOOD_STL
\r
70 XMLString::release(&m_uri);
\r
71 m_uri=XMLString::replicate(uri);
\r
75 void QName::setLocalPart(const XMLCh* localPart)
\r
77 #ifdef HAVE_GOOD_STL
\r
84 XMLString::release(&m_local);
\r
85 m_local=XMLString::replicate(localPart);
\r
89 #ifndef HAVE_GOOD_STL
\r
90 QName::QName(const QName& src)
\r
92 m_uri=XMLString::replicate(src.getNamespaceURI());
\r
93 m_prefix=XMLString::replicate(src.getPrefix());
\r
94 m_local=XMLString::replicate(src.getLocalPart());
\r
97 QName& QName::operator=(const QName& src)
\r
99 m_uri=XMLString::replicate(src.getNamespaceURI());
\r
100 m_prefix=XMLString::replicate(src.getPrefix());
\r
101 m_local=XMLString::replicate(src.getLocalPart());
\r
105 bool xmltooling::operator==(const QName& op1, const QName& op2)
\r
107 return (!XMLString::compareString(op1.getNamespaceURI(),op2.getNamespaceURI()) &&
\r
108 !XMLString::compareString(op1.getLocalPart(),op2.getLocalPart()));
\r
112 bool xmltooling::operator<(const QName& op1, const QName& op2)
\r
114 int i=XMLString::compareString(op1.getNamespaceURI(),op2.getNamespaceURI());
\r
118 return (XMLString::compareString(op1.getLocalPart(),op2.getLocalPart())<0);
\r