xml - xsd 到 java,xsd 文件中带有下划线

标签 xml jaxb xsd xjc

考虑下面的 xsd 文件:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Customer_Info" type="Customer"/>
<xsd:complexType name="Customer_Info">
  <xsd:all>
    <xsd:element name="Profile" type="Profile" minOccurs="1" maxOccurs="1"/>
    <xsd:element name="Address" type="integer" minOccurs="1" maxOccurs="1"/>
  </xsd:all>
</xsd:complexType>
<xsd:complexType name="Profile">
  <xsd:all>
    <xsd:element name="Name" minOccurs="1">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="100"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Email" minOccurs="0">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="50"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Phone" maxOccurs="1">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="12"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
  </xsd:all>
</xsd:complexType>
<xsd:complexType name="Address">
  <xsd:all>
    <xsd:element name="FlatNo" minOccurs="1">
      <xsd:simpleType>
        <xsd:restriction base="xsd:integer">
          <xsd:maxLength value="100"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Street" minOccurs="1">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="100"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Landmark" minOccurs="0">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:maxLength value="100"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
  </xsd:all>
</xsd:complexType>
</xsd:schema>

正如您所看到的,我在 Customer_Info 复杂类型中有“_”。现在,当我使用 JAXB 的 xjc 命令生成 Java 文件时,我得到的文件名为 CustomerInfo.java。 另外,我希望在生成的 Java 文件中将 flatNo 类型设置为 String

....而我希望获得文件名 Customer_Info.java。谁可以帮我这个事?提前致谢...

最佳答案

您可以使用外部绑定(bind)文件来保留 _

<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings 
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
  version="2.1">
  <jxb:globalBindings underscoreBinding="asCharInWord"/>
</jxb:bindings>

使用xjc时,您可以使用-b选项来引用绑定(bind)文件。

xjc -b binding.xml schema.xsd

关于xml - xsd 到 java,xsd 文件中带有下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18308043/

相关文章:

javascript - Node JS 的 SQL 外部化(XML 解析)

xml - 如何根据键值删除特定节点?

xml - 如何使用 xmlstarlet 在另一个元素下插入一个新元素?

java - JAXB @XmlMixed 和 @XmlAdapter

c++ - XSD : How to set attributes values in children element type?

java - 如何将使用 MPAndroidChart 库绘制的饼图中的图例居中?

java - 编译jaxb生成的类时编译失败

Java/XML问题

java - 在 Eclipse XML 编辑器中通过 XSLT 或 Schematron 进行 XML 验证?

java - 使用VTD-XML仅修改元素文本