我有一个xml文件,引用xsd .Master引用xsd也有很多引用xsd。
我的问题是如何将xsd转换为具有许多引用xsd的java类。
我是否必须在同一位置提供所有引用的xsd?
这是我的xsd结构:
hashCode()
这是我的xsd树结构
Main Xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:env="http://data.schemas.tfn.fsr.com/Envelope/2008-05-01/" xmlns="http://fsr.com/Fundamental/2011-07-07/" xmlns:sou="http://fsr.com/FinancialSource/2011-07-07/" xmlns:pe="http://fsr.com/FinancialPeriod/2011-07-07/" xmlns:fs="http://fsr.com/FinancialStatement/2011-07-07/" xmlns:ir="http://fsr.com/FinancialInstrumentRelationship/2011-07-07/" xmlns:fl="http://fsr.com/FinancialLineItem/2011-07-07/" xmlns:seg="http://fsr.com/FinancialSegment/2011-07-07/" xmlns:sli="http://fsr.com/StandardizedLineItem/2011-07-07/" xmlns:ss="http://fsr.com/StandardizedStatement/2011-07-07/" xmlns:ful="http://fsr.com/FundamentalLineItem/2011-07-07/" xmlns:esg="http://fsr.com/ESGSupportingInfo/2011-07-07/" xmlns:cor="http://fsr.com/CoraxData/2012-10-25/" xmlns:al="http://fsr.com/FundamentalAnalytics/2011-07-07/" xmlns:md="http://data.schemas.financial.fsr.com/metadata/2010-10-10/" targetNamespace="http://fsr.com/Fundamental/2011-07-07/" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0">
<xs:import namespace="http://data.schemas.tfn.fsr.com/Envelope/2008-05-01/" schemaLocation="../../Envelope/2008-05-01/ContentEnvelope.xsd"/>
<xs:include schemaLocation="FundamentalDataItem.xsd"/>
<xs:import namespace="http://fsr.com/FinancialSource/2011-07-07/" schemaLocation="FinancialSource.xsd"/>
<xs:import namespace="http://fsr.com/FinancialPeriod/2011-07-07/" schemaLocation="FinancialPeriod.xsd"/>
<xs:import namespace="http://fsr.com/FinancialStatement/2011-07-07/" schemaLocation="FinancialStatement.xsd"/>
<xs:import namespace="http://fsr.com/FinancialInstrumentRelationship/2011-07-07/" schemaLocation="FundamentalInstrument.xsd"/>
<xs:import namespace="http://fsr.com/FinancialLineItem/2011-07-07/" schemaLocation="FinancialLineItem.xsd"/>
<xs:import namespace="http://fsr.com/FinancialSegment/2011-07-07/" schemaLocation="FinancialSegment.xsd"/>
<!--<xs:import namespace="http://fsr.com/StandardizedLineItem/2011-07-07/" schemaLocation="StandardizedLineItem.xsd"/>-->
<xs:import namespace="http://fsr.com/StandardizedStatement/2011-07-07/" schemaLocation="StandardizedStatement.xsd"/>
<!--xs:import namespace="http://fsr.com/FundamentalLineItem/2011-07-07/" schemaLocation="FundamentalLineItem.xsd"/-->
<xs:import namespace="http://fsr.com/CoraxData/2012-10-25/" schemaLocation="TRFCorax.xsd"/>
<xs:import namespace="http://fsr.com/FundamentalAnalytics/2011-07-07/" schemaLocation="FundamentalSeries.xsd"/>
<xs:import namespace="http://fsr.com/FundamentalAnalytics/2011-07-07/" schemaLocation="FundamentalSeriesPeriod.xsd"/>
<xs:import namespace="http://fsr.com/FundamentalAnalytics/2011-07-07/" schemaLocation="FundamentalSeriesFiscalCalendar.xsd"/>
<xs:import namespace="http://fsr.com/FundamentalAnalytics/2011-07-07/" schemaLocation="FundamentalAnalytic.xsd"/>
<xs:import namespace="http://data.schemas.financial.fsr.com/metadata/2010-10-10/" schemaLocation="../../Metadata/2010-10-10/RelationshipDataItem.xsd"/>
<xs:import namespace="http://data.schemas.financial.fsr.com/metadata/2010-10-10/" schemaLocation="../../Metadata/2010-10-10/IdentifierDataItem.xsd"/>
<xs:import namespace="http://data.schemas.financial.fsr.com/metadata/2010-10-10/" schemaLocation="../../Metadata/2010-10-10/AdminStatusDataItem.xsd"/>
<xs:import namespace="http://fsr.com/ESGSupportingInfo/2011-07-07/" schemaLocation="ESGSupportingInfo.xsd"/>
<xs:import namespace="http://fsr.com/FinancialStatement/2011-07-07/" schemaLocation="FinancialStatementLineItem.xsd"/>
<xs:import namespace="http://fsr.com/FinancialStatement/2011-07-07/" schemaLocation="FinancialStatementNonNumericLineItem.xsd"/>
<xs:import namespace="http://fsr.com/StandardizedStatement/2011-07-07/" schemaLocation="StandardizedStatementLineItem.xsd"/>
<xs:complexType name="FundamentalDataItem" mixed="false">
<xs:complexContent>
<xs:extension base="env:DataItemBase">
<xs:sequence>
<xs:element ref="Fundamental" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FinancialPeriodDataItem" mixed="false">
<xs:complexContent>
<xs:extension base="env:DataItemBase">
<xs:sequence>
<xs:element ref="pe:FinancialPeriod" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
答案 0 :(得分:0)
您可以使用JAXB。见Oracle Documentation
JAXB可用于操作XML。
JAXB将采用您编写的XML Schema并创建一组与该模式对应的类。 JAXB实用程序将创建用于操作该XML的数据结构层次结构。
然后可以使用JAXB读取XML文件,然后创建生成的类的实例 - 包含XML中的数据。 JAXB也做了相反的事情:接受java类,并生成相应的XML。
我喜欢JAXB,因为它易于使用,并附带&gt; Java 1.6(如果你使用1.5或更少,你可以下载JAXB .jars。)它创建类层次结构的方式是直观的,根据我的经验,做一个体面的工作抽象掉&#34; XML&#34;这样我就可以专注于&#34;数据&#34;。
还有其他软件可以促进这一点,例如:https://www.liquid-technologies.com/