It leaves something to be desired, yes. I guess you could propose the inverse of the marshaling step to the unmarshaling criteria. Something like "if the xml tag is the string value of basic go types, unmarshal into those types".

I don't know if this would break go1compat, but feel free to formalize such proposal or submit a patch for review.



On 21/06/17 12:10, Dat Huynh wrote:
Hi,

I think something is wrong here.

If it is not a bug of the library, I think we will need to re-think why we need to build the library.

Why do we need to marshal something and then we cannot unmarshal it?

Thank you very much.

Regards,
Dat.






On Wed, Jun 21, 2017 at 11:57 AM, Kiki Sugiaman <ksugia...@gmail.com <mailto:ksugia...@gmail.com>> wrote:

    According to the docs, the library marshals according to the
    following criteria:

    The name for the XML elements is taken from, in order of preference:
    - <snip>
    - the name of the marshaled type

    As a result, the library translates a sequence of slice elements of
    go basic types into a sequence of xml elements with differing tags.

    When unmarshaling into a go slice, the library doesn't have a
    criteria to follow on how to unmarshal such sequence of xml elements.

    I myself would rather see the lib throw an error during the
    marshaling step. However, the lib works as intended as of now in the
    sense that:
    - it doesn't promise a roundtrip-ing ability
    - it follows its marshaling and unmarshaling criteria

    Modifying the current marshaling steps would break go1compat
    (https://golang.org/doc/go1compat <https://golang.org/doc/go1compat>).



    On 21/06/17 11:19, Dat Huynh wrote:

        Hi Kiki,

        Ian has bought it back and I replied it.

        Thanks,
        Dat.



        On Wed, Jun 21, 2017 at 10:58 AM, Kiki Sugiaman
        <ksugia...@gmail.com <mailto:ksugia...@gmail.com>
        <mailto:ksugia...@gmail.com <mailto:ksugia...@gmail.com>>> wrote:

             May I bring this email back into the mailing list so other
        people
             could refer to it?



             On 20/06/17 19:52, Dat Huynh wrote:

                 No worries.

                 It is actually a bug. I reported it here.
        https://github.com/golang/go/issues/20735
        <https://github.com/golang/go/issues/20735>
                 <https://github.com/golang/go/issues/20735
        <https://github.com/golang/go/issues/20735>>

                 Regards,
                 Dat.




                 On Tue, Jun 20, 2017 at 7:49 PM, Kiki Sugiaman
                 <ksugia...@gmail.com <mailto:ksugia...@gmail.com>
        <mailto:ksugia...@gmail.com <mailto:ksugia...@gmail.com>>
                 <mailto:ksugia...@gmail.com
        <mailto:ksugia...@gmail.com> <mailto:ksugia...@gmail.com
        <mailto:ksugia...@gmail.com>>>> wrote:

                      Didn't realize that I replied only to you instead
        of the
                 mailing
                      list....apologies!



                      On 20/06/17 17:05, Kiki Sugiaman wrote:

                          In both cases, you unmarshal into a go slice.

                          [1,2,"Third element","2009-11-10T23:00:00Z",true]
                          ... looks like an array

                          <int>1</int><float64>2</float64><string>Third
element</string><Time>2009-11-10T23:00:00Z</Time><bool>true</bool>
                          ... does not

                          There is no bug in this case.



                          On 20/06/17 08:40, Dat Huynh wrote:

                              Hi all,

                              I am using the libraries "encoding/xml" and
                 "encoding/json"
                              to marshal and unmarshal a slice.

                              I wonder why the method Unmarshal in
        encoding/xml
                 does not
                              return a slice as what I have from
        encoding/json.

                              The below is my example.
        https://play.golang.org/p/ZlALkyCbzX
        <https://play.golang.org/p/ZlALkyCbzX>
                 <https://play.golang.org/p/ZlALkyCbzX
        <https://play.golang.org/p/ZlALkyCbzX>>
                              <https://play.golang.org/p/ZlALkyCbzX
        <https://play.golang.org/p/ZlALkyCbzX>
                 <https://play.golang.org/p/ZlALkyCbzX
        <https://play.golang.org/p/ZlALkyCbzX>>>

                              Do I miss something or is this a bug of
        the library?

                              Thank you very much.

                              Sincerely,
                              Dat.

                              --             You received this message
        because
                 you are subscribed to the
                              Google Groups "golang-nuts" group.
                              To unsubscribe from this group and stop
        receiving
                 emails
                              from it, send an email to
        golang-nuts+unsubscr...@googlegroups.com
        <mailto:golang-nuts%2bunsubscr...@googlegroups.com>
                 <mailto:golang-nuts%2bunsubscr...@googlegroups.com
        <mailto:golang-nuts%252bunsubscr...@googlegroups.com>>
<mailto:golang-nuts%2bunsubscr...@googlegroups.com
        <mailto:golang-nuts%252bunsubscr...@googlegroups.com>
                 <mailto:golang-nuts%252bunsubscr...@googlegroups.com
        <mailto:golang-nuts%25252bunsubscr...@googlegroups.com>>>
<mailto:golang-nuts+unsubscr...@googlegroups.com
        <mailto:golang-nuts%2bunsubscr...@googlegroups.com>
                 <mailto:golang-nuts%2bunsubscr...@googlegroups.com
        <mailto:golang-nuts%252bunsubscr...@googlegroups.com>>
<mailto:golang-nuts%2bunsubscr...@googlegroups.com
        <mailto:golang-nuts%252bunsubscr...@googlegroups.com>
                 <mailto:golang-nuts%252bunsubscr...@googlegroups.com
        <mailto:golang-nuts%25252bunsubscr...@googlegroups.com>>>>.
                              For more options, visit
        https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>
                 <https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>>
                              <https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>
                 <https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>>>.




-- You received this message because you are subscribed to the Google
    Groups "golang-nuts" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to golang-nuts+unsubscr...@googlegroups.com
    <mailto:golang-nuts%2bunsubscr...@googlegroups.com>.
    For more options, visit https://groups.google.com/d/optout
    <https://groups.google.com/d/optout>.



--
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to