blob: 513d280b8eee53521796ef5b44b2727af5bd01b8 [file] [log] [blame]
/*
* Copyright 2000-2014 JetBrains s.r.o.
*
* 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.
*/
package com.intellij.xml.util;
import com.intellij.html.impl.RelaxedHtmlFromSchemaNSDescriptor;
import com.intellij.psi.filters.*;
import com.intellij.psi.filters.position.NamespaceFilter;
import com.intellij.psi.filters.position.TargetNamespaceFilter;
import com.intellij.psi.meta.MetaDataContributor;
import com.intellij.psi.meta.MetaDataRegistrar;
import com.intellij.psi.xml.*;
import com.intellij.xml.impl.dtd.XmlNSDescriptorImpl;
import com.intellij.xml.impl.schema.NamedObjectDescriptor;
import com.intellij.xml.impl.schema.SchemaNSDescriptor;
import com.intellij.xml.impl.schema.XmlAttributeDescriptorImpl;
import com.intellij.xml.impl.schema.XmlElementDescriptorImpl;
/**
* @author Maxim.Mossienko
*/
public class XmlApplicationComponent implements MetaDataContributor {
@Override
public void contributeMetaData(final MetaDataRegistrar registrar) {
{
registrar.registerMetaData(
new AndFilter(
new NamespaceFilter(XmlUtil.SCHEMA_URIS),
new ClassFilter(XmlDocument.class)
),
SchemaNSDescriptor.class
);
registrar.registerMetaData(
new AndFilter(XmlTagFilter.INSTANCE, new NamespaceFilter(XmlUtil.SCHEMA_URIS), new XmlTextFilter("schema")),
SchemaNSDescriptor.class
);
}
{
registrar.registerMetaData(
new OrFilter(
new AndFilter(
new ContentFilter(
new OrFilter(
new ClassFilter(XmlElementDecl.class),
new ClassFilter(XmlEntityDecl.class),
new ClassFilter(XmlConditionalSection.class),
new ClassFilter(XmlEntityRef.class)
)
),
new ClassFilter(XmlDocument.class)
),
new ClassFilter(XmlMarkupDecl.class)
),
XmlNSDescriptorImpl.class
);
}
{
registrar.registerMetaData(new AndFilter(XmlTagFilter.INSTANCE, new NamespaceFilter(XmlUtil.SCHEMA_URIS), new XmlTextFilter("element")),
XmlElementDescriptorImpl.class);
}
{
registrar.registerMetaData(
new AndFilter(XmlTagFilter.INSTANCE, new NamespaceFilter(XmlUtil.SCHEMA_URIS), new XmlTextFilter("attribute")),
XmlAttributeDescriptorImpl.class
);
}
{
registrar.registerMetaData(
new ClassFilter(XmlElementDecl.class),
com.intellij.xml.impl.dtd.XmlElementDescriptorImpl.class
);
}
{
registrar.registerMetaData(
new ClassFilter(XmlAttributeDecl.class),
com.intellij.xml.impl.dtd.XmlAttributeDescriptorImpl.class
);
}
{
registrar.registerMetaData(
new AndFilter(
new ClassFilter(XmlDocument.class),
new TargetNamespaceFilter(XmlUtil.XHTML_URI),
new NamespaceFilter(XmlUtil.SCHEMA_URIS)),
RelaxedHtmlFromSchemaNSDescriptor.class
);
}
{
registrar.registerMetaData(new AndFilter(XmlTagFilter.INSTANCE, new NamespaceFilter(XmlUtil.SCHEMA_URIS), new XmlTextFilter("complexType",
"simpleType", "group",
"attributeGroup")),
NamedObjectDescriptor.class);
}
}
}