小编DUF*_*UFF的帖子

用于查询XSD文件的Java方法

我有一组用于不同数据类型的xsd文件.在Java世界中,生成类型属性列表的最佳方法是什么?

例如,这两个文件.

file:customer.xsd

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="customer">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="number" type="xs:integer"/>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="address" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

file:order.xsd

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="customer">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="orderid" type="xs:integer"/>
      <xs:element name="customer" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

我想做两件事

1.一个Java应用程序,它读入XSD并进行处理(不知何故?).因此,当您运行该程序时,它可以打印出属性

> java -jar printtypes.jar -f customer.xsd
> number : Integer
> name : String
> address : String
Run Code Online (Sandbox Code Playgroud)

2.某种生成新文件的转换

file:customer.properties

<propertylist>
<prop>
 <name> orderid </name>
 <type> integer </type>
</prop> …
Run Code Online (Sandbox Code Playgroud)

java xml xsd

5
推荐指数
1
解决办法
994
查看次数

使用Java中的XSOM解析XSD架构.如何访问元素和复杂类型

我在Java中使用XSOM进行了很多难以解析的.XSD文件.我有两个.XSD文件,一个定义日历,第二个定义全局类型.我希望能够阅读日历文件并确定:

日历有3个属性

  • 有效的是名为eYN的ENUM
  • Cal是一个字符串
  • 状态是一个名为eSTATUS的ENUM

Calendar.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns:gtypes="http://www.btec.com/gtypes"
 elementFormDefault="qualified">
<xs:import namespace="http://www.btec.com/gtypes"
 schemaLocation="gtypes.xsd"/>
<xs:element name="CALENDAR">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Valid" type="eYN" minOccurs="0"/>
      <xs:element name="Cal" minOccurs="0">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="gtypes:STRING">
              <xs:attribute name="IsKey" type="xs:string" fixed="Y"/>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Status" type="eSTATUS" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:complexType name="eSTATUS">
  <xs:simpleContent>
    <xs:extension base="gtypes:ENUM"/>
  </xs:simpleContent>
</xs:complexType>
<xs:complexType name="eYN">
  <xs:simpleContent>
    <xs:extension base="gtypes:ENUM"/>
  </xs:simpleContent>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

gtypes.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://www.btec.com/gtypes"
 elementFormDefault="qualified">
<xs:complexType name="ENUM">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="TYPE" fixed="ENUM"/>
      <xs:attribute name="derived" use="optional"/>
      <xs:attribute …
Run Code Online (Sandbox Code Playgroud)

java xml schema xsd xsom

5
推荐指数
1
解决办法
2万
查看次数

Jaxb unmarshalls fixml对象,但所有字段都为null

我有一个FIXML格式的小型XML文档.我正在使用jaxb解组它们.

问题

该过程完成但没有错误,但创建的对象完全为空.每个字段都是空的.作为列表的字段(如数量)在其中具有正确数量的对象.但是这些对象的字段也是null.

建立

我从这里下载了FIXML模式 ,我用xjc和maven插件创建了类.它们都在org.fixprotocol.fixml_5_0_sp2包中.我在文件中有样本xml

FIXML.XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<FIXML>
<Batch>
    <PosRpt>
    <Pty ID="GS" R="22"/>
    <Pty ID="01" R="5"/>
    <Pty ID="6U8" R="28">
        <Sub ID="2" Typ="21"/>
    </Pty>
    <Pty ID="GS" R="22"/>
    <Pty ID="6U2" R="2"/>
    <Instrmt ID="GHPKRW" SecTyp="FWD" MMY="20121018" MatDt="2012-10-18" Mult="1" Exch="GS" PxQteCcy="KJS" FnlSettlCcy="GBP" Fctr="0.192233298" SettlMeth="G" ValMeth="FWDC2" UOM="Ccy" UOMCCy="USD">
        <Evnt EventTyp="121" Dt="2013-10-17"/>
        <Evnt EventTyp="13" Dt="2013-10-17"/>
    </Instrmt>
    <Qty Long="0.000" Short="22000000.000" Typ="PNTN"/>
    <Qty Long="0.000" Short="22000000.000" Typ="FIN"/>
    <Qty Typ="DLV" Long="0.00" Short="0.00" Net="0.0"/>
    <Amt Typ="FMTM" Amt="32.332" Ccy="USD"/>
    <Amt Typ="CASH" Amt="1" Rsn="3" Ccy="USD"/>
    <Amt Typ="IMTM" Amt="329.19" …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb xml-parsing

5
推荐指数
1
解决办法
2130
查看次数

标签 统计

java ×3

xml ×3

xsd ×2

jaxb ×1

schema ×1

xml-parsing ×1

xsom ×1