Jak ustawić kolejność zapisu elementów w pliku xml

0

Witam.
Po wykonaniu sortowania zmienia się kolejność ułożonych elementów.
Przed sortowaniem.

<account iban=>
		<name></name>
		<currency></currency>
		<balance></balance>
		<closingDate></closingDate>
</account>

Po sortowaniu.

<account iban=>
        <balance></balance>
        <currency></currency>
        <closingDate></closingDate>
        <name></name>
</account>

Czy jest możliwość ustalenia kolejności ułożenia elementów?

3

Z definicji oba XMLe są równoważne i większość bibliotek/parserów w ogóle nie bierze pod uwagę czegoś takiego jak kolejność. Juz sam fakt że próbujesz coś takiego wymusić oznacza że masz coś bardzo mono zepsute w projekcie...
Jak będziesz to pisać jakimś parserem SAX/StAX to pewnie zachowa ci kolejność w jakiej będziesz strumieniować.

0
Shalom napisał(a):

Z definicji oba XMLe są równoważne i większość bibliotek/parserów w ogóle nie bierze pod uwagę czegoś takiego jak kolejność. Juz sam fakt że próbujesz coś takiego wymusić oznacza że masz coś bardzo mono zepsute w projekcie...
Jak będziesz to pisać jakimś parserem SAX/StAX to pewnie zachowa ci kolejność w jakiej będziesz strumieniować.

Robię zadanie rekrutacyjne i dostałem plik końcowy jak powinien wyglądać po operacjach. Zastanawiam się czy powinienem ułożyć elementy tak jak w pliku końcowym.

0
vpiotr napisał(a):

Patrz propOrder:
https://kodejava.org/how-do-i-define-the-xml-element-order-in-jaxb/

Też to widziałem ale problem pojawia się gdy jest lista obiektów.

1

Ten temat już był tutaj na forum. Ustaliliśmy, że przepalanie czasu na walkę z kolejnością elementów w XML jest dowodem na lokowanie energii w nieodpowiednim miejscu :)

0

@shalom co do zasady się zgadzam, kolejność w xml nie ma znaczenia, ale jeżeli ktos to sprawdzi takim XSD:

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="account">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="currency" type="xs:string"/>
      <xs:element name="balance" type="xs:string"/>
      <xs:element name="closingDate" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>

To drugi przykład nie przejdzie. i jakoś w api do ktorych wysyłałem XMLe zawsze miały xs:sequence zamiast xs:all, więc ta kolejność może mieć znaczenie

1 użytkowników online, w tym zalogowanych: 0, gości: 1