мне нужно разборе следующее XSD сниппетаАнализ синтаксического анализа с использованием анализатора SAX или анализатора DOM? какой из них более эффективен?
<xs:element name="BANT" type="tns:B"/>
<xs:complexType name="InqRq_Type">
<xs:sequence>
<xs:element name="Header" type="tns:Rq"/>
<xs:element name="Data" type="tns:InqRqData_Type"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RqHeader_Type">
<xs:sequence>
<xs:element name="Filler1" minOccurs="0" >
<xs:simpleType >
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MsgLen" minOccurs="0" >
<xs:simpleType >
<xs:restriction base="xs:string">
<xs:maxLength value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Filler2" minOccurs="0" >
<xs:simpleType >
<xs:restriction base="xs:string">
<xs:maxLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MsgType" minOccurs="0" >
<xs:simpleType >
<xs:restriction base="xs:string">
<xs:maxLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Filler3" minOccurs="0" >
<xs:simpleType >
<xs:restriction base="xs:string">
<xs:maxLength value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CycleNum" minOccurs="0" >
<xs:simpleType >
<xs:restriction base="xs:string">
<xs:maxLength value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MsgNum" minOccurs="0" >
<xs:simpleType >
<xs:restriction base="xs:string">
<xs:maxLength value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Если я разобрать его с помощью SAX парсер Я с трудом разборе ComplexType.
Следует использовать анализатор DOM или есть способ легко разобрать complexType с помощью анализатора SAX.
Сложность: -
NodeList list = doc.getElementsByTagName("xs:element");
дает мне все элементы, даже те под ComplexType. Итак, как мне взять complexType и хранить элементы под ним, а затем обрабатывать остальную информацию.
Что вы имеете в виду именно с "* У меня возникли трудности с разбором complexType *"? Что бы вы сделали? – potame
трудность: - Элементы под ним и простые элементы не дифференцируются, когда я использую doc.getElementsByTagName ("xs: element") Итак, как я их читаю и сохраняю их в стеке или очереди временно а затем использовать его? – Aishwarya
Эффективность с точки зрения вашего времени намного важнее эффективности с точки зрения производительности машины. Поэтому используйте что-то вроде JDOM2 или XOM. –