генерация Java-классов из XSD с использованием Jaxb - PullRequest
1 голос
/ 21 июня 2011

В настоящее время работает над проектом, в котором xsd были предоставлены для обмена данными. Доступны xsd isotc211 . Как можно видеть, есть несколько из них, и меня интересует генерация классов для /gmd/metadataEntity.xsd, которая, в свою очередь, имеет зависимости от других xsds и так далее. Проблема в том, что существует много повторений имен для элементов и атрибутов, и было бы очень долго избавляться от них, и в конце я даже не уверен, сработает ли это. у меня есть это до сих пор ..

<jxb:bindings version="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:jxb="http://java.sun.com/xml/ns/jaxb" >         
<jxb:bindings schemaLocation="geometryPrimitives.xsd" node="/xsd:schema">           
 <jxb:schemaBindings>  
         <jxb:package name="net.opengis.gml"/>     
            <jxb:nameXmlTransform>       
               <jxb:elementName suffix="Element"/>     
            </jxb:nameXmlTransform>     
      </jxb:schemaBindings>     
   <jxb:bindings
    node="//xsd:group[@name='PointGrid']/xsd:sequence/xsd:element[@name='rows']">
<jxb:property name="rowsElement"/>
</jxb:bindings>    
</jxb:bindings>    
</jxb:bindings>`

преобразование namexml должно было помочь позаботиться о присвоении имен элементам и атрибутам, но у меня все еще много похожих имен в xsd. есть ли способ обойти это? Например, элементы теперь генерируются с использованием суффикса. поэтому я получаю net.open.gml.SecondDefiningParameterElement уже используется.

когда что-то подобное существует в одном из xsd

<element name="secondDefiningParameter"><complexType>
        <sequence>
            <element ref="gml:SecondDefiningParameter"/>
        </sequence>
    </complexType>
</element>

и в том же xsd

<element name="SecondDefiningParameter">
    <complexType>
        <choice>
            <element name="inverseFlattening" type="gml:MeasureType"/>
            <element name="semiMinorAxis" type="gml:LengthType"/>
            <element name="isSphere">
                <simpleType>
                    <restriction base="string">
                        <enumeration value="sphere"/>
                    </restriction>
                </simpleType>
            </element>
        </choice>
    </complexType>
</element>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...