我有一组用于不同数据类型的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中使用XSOM进行了很多难以解析的.XSD文件.我有两个.XSD文件,一个定义日历,第二个定义全局类型.我希望能够阅读日历文件并确定:
日历有3个属性
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) 我有一个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)