001: /**
002: * Licensed to the Apache Software Foundation (ASF) under one
003: * or more contributor license agreements. See the NOTICE file
004: * distributed with this work for additional information
005: * regarding copyright ownership. The ASF licenses this file
006: * to you under the Apache License, Version 2.0 (the
007: * "License"); you may not use this file except in compliance
008: * with the License. You may obtain a copy of the License at
009: *
010: * http://www.apache.org/licenses/LICENSE-2.0
011: *
012: * Unless required by applicable law or agreed to in writing,
013: * software distributed under the License is distributed on an
014: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015: * KIND, either express or implied. See the License for the
016: * specific language governing permissions and limitations
017: * under the License.
018: */package org.apache.cxf.service.model;
019:
020: import javax.xml.namespace.QName;
021:
022: import org.w3c.dom.Element;
023:
024: import org.apache.ws.commons.schema.XmlSchema;
025: import org.apache.ws.commons.schema.XmlSchemaElement;
026:
027: public final class SchemaInfo extends AbstractPropertiesHolder {
028:
029: ServiceInfo serviceInfo;
030: String namespaceUri;
031: Element element;
032: boolean isElementQualified;
033: boolean isAttributeQualified;
034: XmlSchema schema;
035: String systemId;
036:
037: public SchemaInfo(ServiceInfo serviceInfo, String namespaceUri) {
038: this .serviceInfo = serviceInfo;
039: this .namespaceUri = namespaceUri;
040: this .isElementQualified = false;
041: this .isAttributeQualified = false;
042: }
043:
044: public String toString() {
045: StringBuffer buffer = new StringBuffer(this .getClass()
046: .getName());
047: buffer.append(" [namespaceURI: ");
048: buffer.append(namespaceUri);
049: buffer.append("] [systemId: ");
050: buffer.append(systemId);
051: buffer.append("]");
052:
053: return buffer.toString();
054: }
055:
056: public ServiceInfo getServiceInfo() {
057: return serviceInfo;
058: }
059:
060: public String getNamespaceURI() {
061: return namespaceUri;
062: }
063:
064: public void setNamespaceURI(String nsUri) {
065: this .namespaceUri = nsUri;
066: }
067:
068: public Element getElement() {
069: return element;
070: }
071:
072: public void setElement(Element element) {
073: this .element = element;
074: String form = element.getAttribute("elementFormDefault");
075: if ((form != null) && form.equals("qualified")) {
076: isElementQualified = true;
077: }
078: form = element.getAttribute("attributeFormDefault");
079: if ((form != null) && form.equals("qualified")) {
080: isAttributeQualified = true;
081: }
082: }
083:
084: public boolean isElementFormQualified() {
085: return isElementQualified;
086: }
087:
088: public boolean isAttributeFormQualified() {
089: return isAttributeQualified;
090: }
091:
092: public XmlSchema getSchema() {
093: return schema;
094: }
095:
096: public void setSchema(XmlSchema schema) {
097: this .schema = schema;
098: }
099:
100: public String getSystemId() {
101: return systemId;
102: }
103:
104: public void setSystemId(String systemId) {
105: this .systemId = systemId;
106: }
107:
108: public XmlSchemaElement getElementByQName(QName qname) {
109: /* String uri = qname.getNamespaceURI();
110: if (namespaceUri.equals(uri)) {
111: NodeList nodes = element.getElementsByTagName(qname.getLocalPart());
112: for (int i = 0; i < nodes.getLength(); i++) {
113: if (nodes.item(i) instanceof Element) {
114: return (Element)nodes.item(i);
115: }
116:
117: }
118: }
119: return null;*/
120: String uri = qname.getNamespaceURI();
121: if (schema != null && schema.getTargetNamespace() != null
122: && schema.getTargetNamespace().equals(uri)) {
123: return schema.getElementByName(qname);
124: }
125: return null;
126: }
127: }
|