使用XSD在XML中指定java类

时间:2014-03-04 06:33:57

标签: java xml spring xsd

我有一个基于Spring和maven的Java Web应用程序。

我有一个XML文件用作配置。我正在通过JAXB解析它并且它正常工作。这是一个示例文件。

<?xml version="1.0" encoding="UTF-8"?>
<sources>
    <source name="source1">
        <bean class="com.myapp.demo.SourceDemo" />
        <bean class="com.myapp.demo.Source2" />
    </source>
</sources>

我为此XML生成了XSD。这是XSD文件..

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="sources">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="source">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="bean" maxOccurs="unbounded" minOccurs="0">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:string">
                      <xs:attribute type="xs:string" name="class" use="optional"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute type="xs:string" name="name"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

这是我用XML导入的,它工作正常。当我解析时,我将类值作为String。

现在class属性值是String。但是我想把它作为一个类提供者,所以当我开始用包输入类名并按Ctrl + Space时,它应该给出填充类名的选项,就像在Spring applicationcontext.xml中一样

我该怎么做?这就是我的尝试。

<xs:attribute type="xs:string" name="class" use="optional">
                        <xs:annotation>
                            <xs:documentation source="java:java.lang.Class">
                            </xs:documentation>
                        </xs:annotation>
</xs:attribute>

但是当我开始输入并按下Ctrl + Space时,它没有给出任何选项。

1 个答案:

答案 0 :(得分:0)

IDE(例如STS)具有Spring XML文件的编辑器扩展。除非您的XML实际上 是一个Spring配置文件,否则使用架构中元数据的那个技巧将无效。遗憾。