01: /**
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */package org.apache.geronimo.schema;
17:
18: import javax.xml.namespace.QName;
19:
20: import org.apache.xmlbeans.XmlCursor;
21:
22: /**
23: * @version $Rev: 476049 $ $Date: 2006-11-16 20:35:17 -0800 (Thu, 16 Nov 2006) $
24: */
25: public class QNameConverter implements ElementConverter {
26:
27: private final String sourceLocalName;
28: private final String namespace;
29: private final QName qname;
30:
31: public QNameConverter(String sourceLocalName, String namespace,
32: String localName) {
33: this .sourceLocalName = sourceLocalName;
34: this .namespace = namespace;
35: qname = new QName(namespace, localName);
36: }
37:
38: public void convertElement(XmlCursor cursor, XmlCursor end) {
39: end.toCursor(cursor);
40: end.toEndToken();
41: while (cursor.hasNextToken() && cursor.isLeftOf(end)) {
42: if (cursor.isStart()) {
43: QName name = cursor.getName();
44: if (name.getLocalPart().equals(sourceLocalName)) {
45: cursor.setName(qname);
46: } else {
47: cursor.setName(new QName(namespace, name
48: .getLocalPart()));
49: }
50: }
51: cursor.toNextToken();
52: }
53: }
54: }
|