<types>
    <xsd:schema targetNamespace="http://www.ibm.com/bpws4j/samples/echocomplex/types"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:complexType name="phone">
        <xsd:element name="areaCode" type="xsd:int"/>
        <xsd:element name="exchange" type="xsd:string"/>
        <xsd:element name="number" type="xsd:string"/>
      </xsd:complexType>
    </xsd:schema>
  </types>
大概是类似于上面的代码,我要用Java对其建模,即我要创建一个这样的类:
public class type{
int areaCode;
String exchange;
String number;
...
}
我的问题是,能不能由程序解析上面的XML文档之后,自动创建一个类似于type的类?

解决方案 »

  1.   

    如果你要做的是代码生成,应该是没问题,生成个Phone.java文件就行了,如果是运行期的话好像是不行吧!你这种情况一般是定义一个类似于Map的统一数据结构MyType,然后按照类似于下面的方法操作:       MyType type=MyTypeFactory.newObject("Phone");  // 这时可以根据配置文件初始化每一个Field
           type.setField("number","1234");                // 这时可以根据配置文件做一些校验.
           String num=type.getField("number");因为你在代码期间是不可能知道Phone这个类型的.
     
      

  2.   

    可以用JAXB(Java Architecture for XML Binding)来解决,能够根据xml schema创建Java类,并支持schema校验。jdk1.5需要自己导入,jdk 1.6已经内置JAXB 2.1,可以找相关的文档来看看。