Mock Version: 3.5
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs  --target aarch64 --nodeps /builddir/build/SPECS/golang-github-clbanning-mxj.spec'], chrootPath='/var/lib/mock/fedora-rawhide-aarch64-1674444930.688399/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0xffff8a9957d0>timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hq7llh19:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True)
Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hq7llh19:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '4e3ee8ae47974fa49fb129c4e2ec7a6f', '-D', '/var/lib/mock/fedora-rawhide-aarch64-1674444930.688399/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hq7llh19:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs  --target aarch64 --nodeps /builddir/build/SPECS/golang-github-clbanning-mxj.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: aarch64
Building for target aarch64
setting SOURCE_DATE_EPOCH=1630540800
Wrote: /builddir/build/SRPMS/golang-github-clbanning-mxj-2.5.5-4.fc38.src.rpm
Child return code was: 0
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb  --target aarch64 --nodeps /builddir/build/SPECS/golang-github-clbanning-mxj.spec'], chrootPath='/var/lib/mock/fedora-rawhide-aarch64-1674444930.688399/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0xffff8a9957d0>timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hq7llh19:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True)
Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hq7llh19:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'bdeec0aeaf1c44bd8105a22bde2f66de', '-D', '/var/lib/mock/fedora-rawhide-aarch64-1674444930.688399/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hq7llh19:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bb  --target aarch64 --nodeps /builddir/build/SPECS/golang-github-clbanning-mxj.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: aarch64
Building for target aarch64
setting SOURCE_DATE_EPOCH=1630540800
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.9AG4Ij
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf mxj-2.5.5
+ /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/mxj-2.5.5.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd mxj-2.5.5
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ rm -fr /builddir/build/BUILD/mxj-2.5.5/vendor
+ [[ ! -e /builddir/build/BUILD/mxj-2.5.5/_build/bin ]]
+ install -m 0755 -vd /builddir/build/BUILD/mxj-2.5.5/_build/bin
install: creating directory '/builddir/build/BUILD/mxj-2.5.5/_build'
install: creating directory '/builddir/build/BUILD/mxj-2.5.5/_build/bin'
+ export GOPATH=/builddir/build/BUILD/mxj-2.5.5/_build:/usr/share/gocode
+ GOPATH=/builddir/build/BUILD/mxj-2.5.5/_build:/usr/share/gocode
+ [[ ! -e /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning/mxj ]]
++ dirname /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning/mxj
+ install -m 0755 -vd /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning
install: creating directory '/builddir/build/BUILD/mxj-2.5.5/_build/src'
install: creating directory '/builddir/build/BUILD/mxj-2.5.5/_build/src/github.com'
install: creating directory '/builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning'
+ ln -fs /builddir/build/BUILD/mxj-2.5.5 /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning/mxj
+ cd /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning/mxj
+ rm -rf deprecate/
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.dXp7L6
+ umask 022
+ cd /builddir/build/BUILD
+ '[' /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64 '!=' / ']'
+ rm -rf /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64
++ dirname /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64
+ mkdir -p /builddir/build/BUILDROOT
+ mkdir /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64
+ cd mxj-2.5.5
+ cd /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning/mxj
+ IFS=
+ gosupfiles=
+ mapfile -t gosupfilesA
+ go-rpm-integration install -i github.com/clbanning/mxj -b /builddir/build/BUILD/mxj-2.5.5/_build/bin -s /builddir/build/BUILD/mxj-2.5.5/_build -o golang-github-clbanning-mxj-devel.file-list -O /builddir/build/BUILD/mxj-2.5.5 -V 2.5.5-4.fc38 -p /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64 -g /usr/share/gocode -r '.*example.*'
Installing: github.com/clbanning/mxj
+ IFS=
+++ realpath -e --relative-base=. examples readme.md x2j-wrapper/README
+++ sort -u
++ listfiles_include='examples
readme.md
x2j-wrapper/README'
++ echo 'examples
readme.md
x2j-wrapper/README'
+ godocs='examples
readme.md
x2j-wrapper/README'
+ [[ -n examples
readme.md
x2j-wrapper/README ]]
+ IFS=
+ read -r f
+ echo %doc '"examples"'
+ IFS=
+ read -r f
+ echo %doc '"readme.md"'
+ IFS=
+ read -r f
+ echo %doc '"x2j-wrapper/README"'
+ IFS=
+ read -r f
+ IFS=
+++ realpath -e --relative-base=. LICENSE x2j-wrapper/LICENSE
+++ sort -u
++ listfiles_include='LICENSE
x2j-wrapper/LICENSE'
++ echo 'LICENSE
x2j-wrapper/LICENSE'
+ golicenses='LICENSE
x2j-wrapper/LICENSE'
+ [[ -n LICENSE
x2j-wrapper/LICENSE ]]
+ IFS=
+ read -r f
+ echo %license '"LICENSE"'
+ IFS=
+ read -r f
+ echo %license '"x2j-wrapper/LICENSE"'
+ IFS=
+ read -r f
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-ldconfig
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip /usr/bin/strip
+ /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip
+ /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/redhat/brp-mangle-shebangs
+ /usr/lib/rpm/brp-remove-la-files
+ env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j4
+ /usr/lib/rpm/redhat/brp-python-hardlink
Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.IJvHYm
+ umask 022
+ cd /builddir/build/BUILD
+ cd mxj-2.5.5
+ LDFLAGS=' -X github.com/clbanning/mxj/version=2.5.5'
+ GO_TEST_FLAGS='-buildmode pie -compiler gc'
+ GO_TEST_EXT_LD_FLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes '
+ go-rpm-integration check -i github.com/clbanning/mxj -b /builddir/build/BUILD/mxj-2.5.5/_build/bin -s /builddir/build/BUILD/mxj-2.5.5/_build -V 2.5.5-4.fc38 -p /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64 -g /usr/share/gocode -r '.*example.*'
Testing    in: /builddir/build/BUILD/mxj-2.5.5/_build/src
         PATH: /builddir/build/BUILD/mxj-2.5.5/_build/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
       GOPATH: /builddir/build/BUILD/mxj-2.5.5/_build:/usr/share/gocode
  GO111MODULE: off
      command: go test -buildmode pie -compiler gc -ldflags " -X github.com/clbanning/mxj/version=2.5.5 -extldflags '-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes '"
      testing: github.com/clbanning/mxj
github.com/clbanning/mxj
----------------  anyxml_test.go ...
[]->x: <doc><somekey>somevalue</somekey><somekey>somevalue</somekey><element><somekey>somevalue</somekey><someotherkey>someothervalue</someotherkey></element><element>string</element><element>3.14159265</element><element>true</element></doc>
a->x: <doc><element>try</element><element>this</element><element>3.14159265</element><element>true</element></doc>
a->x: <myRootTag><myElementTag>try</myElementTag><myElementTag>this</myElementTag><myElementTag>3.14159265</myElementTag><myElementTag>true</myElementTag></myRootTag>
f->x: <doc>3.14159625</doc>
s->x: <MyStruct><somekey>somevalue</somekey><floatval>3.1415963</floatval></MyStruct>
[]->x:
 <doc>
  <somekey>somevalue</somekey>
  <somekey>somevalue</somekey>
  <element>
    <somekey>somevalue</somekey>
    <someotherkey>someothervalue</someotherkey>
  </element>
  <element>string</element>
  <element>3.14159265</element>
  <element>true</element>
</doc>
a->x:
 <doc>
  <element>try</element>
  <element>this</element>
  <element>3.14159265</element>
  <element>true</element>
</doc>
f->x:
 <doc>3.14159625</doc>
f->x:
 <myRootTag>3.14159625</myRootTag>
s->x:
 <MyStruct>
  <somekey>somevalue</somekey>
  <floatval>3.1415963</floatval>
</MyStruct>
----------------- TestPrefixDefault ...
----------------- TestPrefixNoHyphen ...
----------------- TestPrefixUnderscore ...
----------------- TestPrefixAt ...
----------------- TestMarshalPrefixDefault ...
<doc>
  <elem1 attr1="this" attr2="is">a test</elem1>
  <elem2 attr1="this" attr2="is not">a test</elem2>
</doc>
----------------- TestMarshalPrefixNoHyphen ...
x: <doc>
  <elem1>a test
    <attr1>this</attr1>
    <attr2>is</attr2>
  </elem1>
  <elem2>a test
    <attr1>this</attr1>
    <attr2>is not</attr2>
  </elem2>
</doc>
----------------- TestMarshalPrefixUnderscore ...
<doc>
  <elem1 attr1="this" attr2="is">a test</elem1>
  <elem2 attr1="this" attr2="is not">a test</elem2>
</doc>
---------------- badxml_test.go
TestBadXml ...
m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]]
m: <Allitems><Item/><Item><description>Some description goes here.</description><link>http://www.something.com</link></Item></Allitems>
TestBadXmlSeq ...
m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]]
m: <Allitems><Item/><Item><link>http://www.something.com</link><description>Some description goes here.</description></Item></Allitems>
TestBadXmlReader ...
m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]]
m: <Allitems><Item/><Item><description>Some description goes here.</description><link>http://www.something.com</link></Item></Allitems>
TestBadXmlSeqReader ...
m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]]
m: <Allitems><Item/><Item><link>http://www.something.com</link><description>Some description goes here.</description></Item></Allitems>
--------------- bom_test.go
TestBom ...
TestBomData ...
m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]]
m: <Allitems><Item/><Item><description>Some description goes here.</description><link>http://www.something.com</link></Item></Allitems>
TestBomDataSeq ...
m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]]
m: <Allitems><Item/><Item><link>http://www.something.com</link><description>Some description goes here.</description></Item></Allitems>
TestBomDataReader ...
m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]]
m: <Allitems><Item/><Item><description>Some description goes here.</description><link>http://www.something.com</link></Item></Allitems>
TestBomDataSeqReader ...
m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]]
m: <Allitems><Item/><Item><link>http://www.something.com</link><description>Some description goes here.</description></Item></Allitems>
----------------  bulk_test.go ...
XmlReader, xmldata:
 
<book>
	<author>William H. Gaddis</author>
	<title>The Recognitions</title>
	<review>One of the seminal American novels of the 20th century.</review>
</book>
<book>
	<author>William H. Gaddis</author>
	<title>JR</title>
	<review>Won the National Book Award.</end_tag_error>
</book>
<book>
	<author>Austin Tappan Wright</author>
	<title>Islandia</title>
	<review>An example of earlier 20th century American utopian fiction.</review>
</book>
<book>
	<author>John Hawkes</author>
	<title>The Beetle Leg</title>
	<review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
</book>
<book>
	<author>
		<first_name>T.E.</first_name>
		<last_name>Porter</last_name>
	</author>
	<title>King's Day</title>
	<review>A magical novella.</review>
</book>
XmlReader, result :
 {
  "book": {
    "author": "William H. Gaddis",
    "review": "One of the seminal American novels of the 20th century.",
    "title": "The Recognitions"
  }
}
{
  "book": {
    "author": "Austin Tappan Wright",
    "review": "An example of earlier 20th century American utopian fiction.",
    "title": "Islandia"
  }
}
{
  "book": {
    "author": "John Hawkes",
    "review": "A lyrical novel about the construction of Ft. Peck Dam in Montana.",
    "title": "The Beetle Leg"
  }
}
{
  "book": {
    "author": {
      "first_name": "T.E.",
      "last_name": "Porter"
    },
    "review": "A magical novella.",
    "title": "King's Day"
  }
}
XmlReader, errors :
 [xmlReader: 2] xml.Decoder.Token() - XML syntax error on line 5: element <review> closed by </end_tag_error>
[xmlReader: 3] xml.Decoder.Token() - XML syntax error on line 2: unexpected end element </book>
JsonReader, jsondata:
 
 {"book":{"author":"William H. Gaddis","review":"One of the great seminal American novels of the 20th century.","title":"The Recognitions"}}
{"book":{"author":"Austin Tappan Wright","review":"An example of earlier 20th century American utopian fiction.","title":"Islandia"}}
{"book":{"author":"John Hawkes","review":"A lyrical novel about the construction of Ft. Peck Dam in Montana.","title":"The Beetle Leg"}}
{"book":{"author":{"first_name":"T.E.","last_name":"Porter"},"review":"A magical novella.","title":"King's Day"}}
{ "here":"we", "put":"in", "an":error }
JsonReader, result  :
   <book>
    <author>William H. Gaddis</author>
    <review>One of the great seminal American novels of the 20th century.</review>
    <title>The Recognitions</title>
  </book>
  <book>
    <author>Austin Tappan Wright</author>
    <review>An example of earlier 20th century American utopian fiction.</review>
    <title>Islandia</title>
  </book>
  <book>
    <author>John Hawkes</author>
    <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
    <title>The Beetle Leg</title>
  </book>
  <book>
    <author>
      <first_name>T.E.</first_name>
      <last_name>Porter</last_name>
    </author>
    <review>A magical novella.</review>
    <title>King's Day</title>
  </book>
JsonReader, errors :
 [jsonReader: 5] invalid character 'e' looking for beginning of value
----------------  bulkraw_test.go ...
XmlReaderRaw, xmldata:
 
<book>
	<author>William H. Gaddis</author>
	<title>The Recognitions</title>
	<review>One of the seminal American novels of the 20th century.</review>
</book>
<book>
	<author>William H. Gaddis</author>
	<title>JR</title>
	<review>Won the National Book Award.</end_tag_error>
</book>
<book>
	<author>Austin Tappan Wright</author>
	<title>Islandia</title>
	<review>An example of earlier 20th century American utopian fiction.</review>
</book>
<book>
	<author>John Hawkes</author>
	<title>The Beetle Leg</title>
	<review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
</book>
<book>
	<author>
		<first_name>T.E.</first_name>
		<last_name>Porter</last_name>
	</author>
	<title>King's Day</title>
	<review>A magical novella.</review>
</book>
XmlReaderRaw, result :
 {
  "book": {
    "author": "William H. Gaddis",
    "review": "One of the seminal American novels of the 20th century.",
    "title": "The Recognitions"
  }
}
{
  "book": {
    "author": "Austin Tappan Wright",
    "review": "An example of earlier 20th century American utopian fiction.",
    "title": "Islandia"
  }
}
{
  "book": {
    "author": "John Hawkes",
    "review": "A lyrical novel about the construction of Ft. Peck Dam in Montana.",
    "title": "The Beetle Leg"
  }
}
{
  "book": {
    "author": {
      "first_name": "T.E.",
      "last_name": "Porter"
    },
    "review": "A magical novella.",
    "title": "King's Day"
  }
}
XmlReaderRaw, errors :
 [xmlReader: 2] xml.Decoder.Token() - XML syntax error on line 5: element <review> closed by </end_tag_error>
<book>
	<author>William H. Gaddis</author>
	<title>JR</title>
	<review>Won the National Book Award.</end_tag_error>
[xmlReader: 3] xml.Decoder.Token() - XML syntax error on line 2: unexpected end element </book>
</book>
JsonReaderRaw, jsondata:
 
 {"book":{"author":"William H. Gaddis","review":"One of the great seminal American novels of the 20th century.","title":"The Recognitions"}}
{"book":{"author":"Austin Tappan Wright","review":"An example of earlier 20th century American utopian fiction.","title":"Islandia"}}
{"book":{"author":"John Hawkes","review":"A lyrical novel about the construction of Ft. Peck Dam in Montana.","title":"The Beetle Leg"}}
{"book":{"author":{"first_name":"T.E.","last_name":"Porter"},"review":"A magical novella.","title":"King's Day"}}
{ "here":"we", "put":"in", "an":error }
JsonReaderRaw, result  :
   <book>
    <author>William H. Gaddis</author>
    <review>One of the great seminal American novels of the 20th century.</review>
    <title>The Recognitions</title>
  </book>
  <book>
    <author>Austin Tappan Wright</author>
    <review>An example of earlier 20th century American utopian fiction.</review>
    <title>Islandia</title>
  </book>
  <book>
    <author>John Hawkes</author>
    <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
    <title>The Beetle Leg</title>
  </book>
  <book>
    <author>
      <first_name>T.E.</first_name>
      <last_name>Porter</last_name>
    </author>
    <review>A magical novella.</review>
    <title>King's Day</title>
  </book>
JsonReaderRaw, errors :
 [jsonReader: 5] invalid character 'e' looking for beginning of value
{"here":"we","put":"in","an":error}
cast_test.go ----------
------------ TestCastDefault ...
mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":"T", "f":"f", "false":"FALSE", "true":"true"}, "float":"3.14159625", "int":"2019", "string":"string"}}
------------ TestCastTrue ...
mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":false, "true":true}, "float":3.14159625, "int":2019, "string":"string"}}
------------ TestSetCheckTagToSkipFunc ...
mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":"FALSE", "true":true}, "float":3.14159625, "int":"2019", "string":"string"}}
------------ TestCastValuesToFloat(false) ...
mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":"FALSE", "true":true}, "float":"3.14159625", "int":"2019", "string":"string"}}
------------ TestCastValuesToBool(false) ...
mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":"T", "f":"f", "false":"FALSE", "true":"true"}, "float":3.14159625, "int":"2019", "string":"string"}}
================== TestEscapeChars
 s: "'<>&
ss: &quot;&apos;&lt;&gt;&amp;
================== TestXMLEscapeChars
s: <doc>&quot;&apos;&lt;&gt;&amp;</doc>
m: <doc>
  <mychars>&quot;&apos;&lt;&gt;&amp;</mychars>
</doc>
================== TestXMLEscapeChars2
<doc><simple attr1="an attribute">&quot;&apos;&lt;&gt;&amp;</simple></doc>
map[doc:map[simple:map[#text:"'<>& _attr1:an attribute]]]
mv: <doc>
  <simple attr1="an attribute">&quot;&apos;&lt;&gt;&amp;</simple>
</doc>
================== TestXMLSeqEscapeChars
data: 
		<doc>
			<shortDescription>&gt;0-2y</shortDescription>
		</doc>
m: map[doc:map[shortDescription:map[#seq:0 #text:>0-2y]]]
m: <doc>
  <shortDescription>&gt;0-2y</shortDescription>
</doc>
================== TestXMLSeqEscapeChars2
data: 
		<doc>
			<shortDescription test="&amp;something here">&gt;0-2y</shortDescription>
			<shortDescription test="something there" quote="&quot;">&lt;10-15</shortDescription>
		</doc>
m: map[doc:map[shortDescription:[map[#attr:map[test:map[#seq:0 #text:&something here]] #seq:0 #text:>0-2y] map[#attr:map[quote:map[#seq:1 #text:"] test:map[#seq:0 #text:something there]] #seq:1 #text:<10-15]]]]
m: <doc>
  <shortDescription test="&amp;something here">&gt;0-2y</shortDescription>
  <shortDescription test="something there" quote="&quot;">&lt;10-15</shortDescription>
</doc>
------------ exists_test.go
----------------  files_test.go ...
NewMapsFromJsonFile()
map[a:test file:for files_test.go:case this:is]
map[JSON:values true:true two:2 with:just]
caught error:  stat nil: no such file or directory
caught error:  error: invalid character 'J' looking for beginning of value - reading: {"with":"some","bad":JSON,"in":"it"}
NewMapsFromJsonFileRaw()
{map[a:test file:for files_test.go:case this:is] [123 34 116 104 105 115 34 58 34 105 115 34 44 34 97 34 58 34 116 101 115 116 34 44 34 102 105 108 101 34 58 34 102 111 114 34 44 34 102 105 108 101 115 95 116 101 115 116 46 103 111 34 58 34 99 97 115 101 34 125]}
{map[JSON:values true:true two:2 with:just] [123 34 119 105 116 104 34 58 34 106 117 115 116 34 44 34 116 119 111 34 58 50 44 34 74 83 79 78 34 58 34 118 97 108 117 101 115 34 44 34 116 114 117 101 34 58 116 114 117 101 125]}
caught error:  stat nil: no such file or directory
caught error:  error: invalid character 'J' looking for beginning of value - reading: {"with":"some","bad":JSON,"in":"it"}
NewMapsFromXmlFile()
map[doc:map[data:for files.go some:test]]
map[msg:map[another:doc for:test case just:some]]
caught error:  stat nil: no such file or directory
caught error:  error: xml.Decoder.Token() - XML syntax error on line 4: element <another> closed by </other> - reading: 
<msg>
	<just>some</just>
	<another>doc</other>
NewMapsFromXmlFileRaw()
{map[doc:map[data:for files.go some:test]] [60 100 111 99 62 10 9 60 115 111 109 101 62 116 101 115 116 60 47 115 111 109 101 62 10 9 60 100 97 116 97 62 102 111 114 32 102 105 108 101 115 46 103 111 60 47 100 97 116 97 62 10 60 47 100 111 99 62]}
{map[msg:map[another:doc for:test case just:some]] [10 60 109 115 103 62 10 9 60 106 117 115 116 62 115 111 109 101 60 47 106 117 115 116 62 10 9 60 97 110 111 116 104 101 114 62 100 111 99 60 47 97 110 111 116 104 101 114 62 10 9 60 102 111 114 62 116 101 115 116 32 99 97 115 101 60 47 102 111 114 62 10 60 47 109 115 103 62]}
caught error:  stat nil: no such file or directory
caught error:  error: xml.Decoder.Token() - XML syntax error on line 4: element <another> closed by </other> - reading: 
<msg>
	<just>some</just>
	<another>doc</other>
TestMaps()
mvs: [map[a:test this:is] map[a:test this:is]]
JsonString(): {"a":"test","this":"is"}{"a":"test","this":"is"}
JsonStringIndent(): {
  "a": "test",
  "this": "is"
}
{
  "a": "test",
  "this": "is"
}
XmlString(): <doc><a>test</a><this>is</this></doc><doc><a>test</a><this>is</this></doc>
XmlStringIndent(): <doc>
  <a>test</a>
  <this>is</this>
</doc><doc>
  <a>test</a>
  <this>is</this>
</doc>
map[a:test file:for files_test.go:case this:is]
map[JSON:values true:true two:2 with:just]
files_test_dup.json written
files_test_indent.json written
map[doc:map[data:for files.go some:test]]
map[msg:map[another:doc for:test case just:some]]
files_test_dup.xml written
files_test_indent.xml written
----------------  gob_test.go ...
m: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001]
m: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001]
mv: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001]
m : map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001]
================== TestXmlCheckIsValid
map[:empty $invalid:hex$ entities:<>& nil:<nil>]
map[$invalid:hex$ entities:<>& nil:<nil>]
map[entities:<>& nil:<nil>]
map[nil:<nil>]
map[doc:map[elem:map[#seq:0 #text:element]]]
---------------- j2x_test .go ...
j2x, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null }
j2x, m    : map[key1:string key2:34 key3:true key4:unsafe: <>& key5:<nil>]
j2x, xml  : <doc><key1>string</key1><key2>34</key2><key3>true</key3><key4>unsafe: <>&</key4><key5/></doc>
----------------  json_test.go ...
NewMapJson, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null }
NewMapJson, m    : mxj.Map{"key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":interface {}(nil)}
NewMapJson, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null }
NewMapJson, m    : mxj.Map{"key1":"string", "key2":"34", "key3":true, "key4":"unsafe: <>&", "key5":interface {}(nil)}
NewMapJsonError, jdata : { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null
NewMapJsonError, merror: unexpected EOF
NewMapJsonError, newData : { "this":"is", "in":error }
NewMapJsonError, merror  : invalid character 'e' looking for beginning of value
NewMapJsonReader, jb: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&"}
NewMapJsonReader, m : mxj.Map{"key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&"}
NewMapJsonReader, jb: {"key":"value in new JSON string"}
NewMapJsonReader, m : mxj.Map{"key":"value in new JSON string"}
NewMapJsonReader, jb: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&"}
NewMapJsonReader, m : mxj.Map{"key1":"string", "key2":"34", "key3":true, "key4":"unsafe: <>&"}
NewMapJsonReader, jb: {"key":"value in new JSON string"}
NewMapJsonReader, m : mxj.Map{"key":"value in new JSON string"}
Json, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null }
Json, j    : {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&","key5":null}
Json, j safe: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: \u003c\u003e\u0026","key5":null}
JsonWriter, raw: {"and":"a","bool":true,"float":3.14159,"this":"is a"}
JsonWriter, b  : {"and":"a","bool":true,"float":3.14159,"this":"is a"}
-------------- keystolower_test.go
TestToLower ...
----------- TestSetSubkeyFieldSeparator
----------------  keyvalues_test.go ...
PathsForKey, doc1 ...
PathsForKey, doc1#author
... ss: [doc.books.book.author]
PathsForKey, doc1#books
... ss: [doc.books]
PathsForKey, doc2 ...
PathForKey, doc2#book
... ss: [doc.book doc.books.book]
PathForKeyShortest, doc2#book
... s : doc.book
ValuesForKey ...
ValuesForKey, doc1#author
... ss.v: William T. Gaddis
... ss.v: Austin Tappan Wright
... ss.v: John Hawkes
... ss.v: map[first_name:T.E. last_name:Porter]
ValuesForKey, doc1#book
... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
ValuesForKey, doc1#book,-seq:3
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
ValuesForKey, doc1#book, author:William T. Gaddis
... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
ValuesForKey, doc1#author, -seq:1
ValuesForPath ...
ValuesForPath, doc.books.book.author
... ss.v: William T. Gaddis
... ss.v: Austin Tappan Wright
... ss.v: John Hawkes
... ss.v: map[first_name:T.E. last_name:Porter]
ValuesForPath, doc.books.book
... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
ValuesForPath, doc.books.book -seq=3
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
ValuesForPath, doc.books.* -seq=3
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
ValuesForPath, doc.*.* -seq=3
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
ValuesForNotKey ...
ValuesForPath, doc.books.book !author:William T. Gaddis
... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
ValuesForPath, doc.books.book !author:*
ValuesForPath, doc.books.book !unknown:*
... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
----------------  indexedarray_test.go ...
j_data: { "stuff":[ { "data":[ { "F":1 }, { "F":2 }, { "F":3 } ] }, { "data":[ 4, 5, 6 ] } ] }
m: map[stuff:[map[data:[map[F:1] map[F:2] map[F:3]]] map[data:[4 5 6]]]]
stuff[0]: [map[data:[map[F:1] map[F:2] map[F:3]]]]
stuff.data: [map[F:1] map[F:2] map[F:3] 4 5 6]
stuff[0].data: [map[F:1] map[F:2] map[F:3]]
stuff.data[0]: [map[F:1] 4]
stuff.*[2]: [map[F:3] 6]
stuff.data.F: [1 2 3]
*.*.F: [1 2 3]
stuff.data[0].F: [1]
stuff.data[1].F: [2]
stuff[0].data[2]: [map[F:3]]
stuff[1].data[1]: [5]
stuff[1].data[1].F []
stuff[1].data.F: []
x_data: 
<doc>
	<stuff>
		<data seq="1.1">
			<F>1</F>
		</data>
		<data seq="1.2">
			<F>2</F>
		</data>
		<data seq="1.3">
			<F>3</F>
		</data>
	</stuff>
	<stuff>
		<data seq="2.1">
			<F>4</F>
		</data>
		<data seq="2.2">
			<F>5</F>
		</data>
		<data seq="2.3">
			<F>6</F>
		</data>
	</stuff>
</doc>
m: map[doc:map[stuff:[map[data:[map[-seq:1.1 F:1] map[-seq:1.2 F:2] map[-seq:1.3 F:3]]] map[data:[map[-seq:2.1 F:4] map[-seq:2.2 F:5] map[-seq:2.3 F:6]]]]]]
doc.stuff[0]: [map[data:[map[-seq:1.1 F:1] map[-seq:1.2 F:2] map[-seq:1.3 F:3]]]]
doc.stuff.data[0]: [map[-seq:1.1 F:1] map[-seq:2.1 F:4]]
doc.stuff.data[0] -seq:2.1: [map[-seq:2.1 F:4]]
doc.stuff.data[0].F: [1 4]
doc.stuff[0].data[2]: [map[-seq:1.3 F:3]]
doc.stuff[1].data[1].F: [5]
ak_data: { "section1":{"data" : [{"F1" : "F1 data","F2" : "F2 data"},{"F1" : "demo 123","F2" : "abc xyz"}]}}
m: map[section1:map[data:[map[F1:F1 data F2:F2 data] map[F1:demo 123 F2:abc xyz]]]]
section1.data[0].F1: [F1 data]
----------------  leafnode_test.go ...
json1-LeafNodes:
mxj.LeafNode{Path:"friends[0].skills[0]", Value:44}
mxj.LeafNode{Path:"friends[0].skills[1]", Value:12}
json1-LeafPaths:
"friends[0].skills[0]"
"friends[0].skills[1]"
json2-LeafNodes:
mxj.LeafNode{Path:"friends.skills[0]", Value:44}
mxj.LeafNode{Path:"friends.skills[1]", Value:12}
json1-LeafValues:
44
12
json3-LeafNodes:
mxj.LeafNode{Path:"a", Value:"list"}
mxj.LeafNode{Path:"of[0]", Value:"data"}
mxj.LeafNode{Path:"of[1]", Value:"of"}
mxj.LeafNode{Path:"of[2]", Value:3}
mxj.LeafNode{Path:"of[3]", Value:"types"}
mxj.LeafNode{Path:"of[4]", Value:true}
json3-LeafValues:
"list"
"data"
"of"
3
"types"
true
json3-LeafPaths:
"a"
"of[0]"
"of[1]"
"of[2]"
"of[3]"
"of[4]"
xml2data2-LeafValues:
mxj.LeafNode{Path:"doc.item[0].-color", Value:"blue"}
mxj.LeafNode{Path:"doc.item[0].#text", Value:"Item 2 is blue"}
mxj.LeafNode{Path:"doc.item[0].-num", Value:"2"}
mxj.LeafNode{Path:"doc.item[1].-color", Value:"green"}
mxj.LeafNode{Path:"doc.item[1].arm[0].-side", Value:"left"}
mxj.LeafNode{Path:"doc.item[1].arm[0].-length", Value:"3.5"}
mxj.LeafNode{Path:"doc.item[1].arm[1].-side", Value:"right"}
mxj.LeafNode{Path:"doc.item[1].arm[1].-length", Value:"3.6"}
mxj.LeafNode{Path:"doc.item[1].-num", Value:"3"}
xml2data2-LeafValues(NoAttributes):
mxj.LeafNode{Path:"doc.item[0]", Value:"Item 2 is blue"}
no-hyphen-xml2data2-LeafValues:
mxj.LeafNode{Path:"doc.item[0].num", Value:"2"}
mxj.LeafNode{Path:"doc.item[0].color", Value:"blue"}
mxj.LeafNode{Path:"doc.item[0].#text", Value:"Item 2 is blue"}
mxj.LeafNode{Path:"doc.item[1].num", Value:"3"}
mxj.LeafNode{Path:"doc.item[1].color", Value:"green"}
mxj.LeafNode{Path:"doc.item[1].arm[0].side", Value:"left"}
mxj.LeafNode{Path:"doc.item[1].arm[0].length", Value:"3.5"}
mxj.LeafNode{Path:"doc.item[1].arm[1].side", Value:"right"}
mxj.LeafNode{Path:"doc.item[1].arm[1].length", Value:"3.6"}
no-hyphen-xml2data2-LeafValues(NoAttributes):
mxj.LeafNode{Path:"doc.item[0].num", Value:"2"}
mxj.LeafNode{Path:"doc.item[0].color", Value:"blue"}
mxj.LeafNode{Path:"doc.item[0]", Value:"Item 2 is blue"}
mxj.LeafNode{Path:"doc.item[1].color", Value:"green"}
mxj.LeafNode{Path:"doc.item[1].arm[0].side", Value:"left"}
mxj.LeafNode{Path:"doc.item[1].arm[0].length", Value:"3.5"}
mxj.LeafNode{Path:"doc.item[1].arm[1].side", Value:"right"}
mxj.LeafNode{Path:"doc.item[1].arm[1].length", Value:"3.6"}
mxj.LeafNode{Path:"doc.item[1].num", Value:"3"}
DotNotation-LeafValues:
mxj.LeafNode{Path:"doc.item.0.-num", Value:"2"}
mxj.LeafNode{Path:"doc.item.0.-color", Value:"blue"}
mxj.LeafNode{Path:"doc.item.0.#text", Value:"Item 2 is blue"}
mxj.LeafNode{Path:"doc.item.1.-color", Value:"green"}
mxj.LeafNode{Path:"doc.item.1.arm.0.-side", Value:"left"}
mxj.LeafNode{Path:"doc.item.1.arm.0.-length", Value:"3.5"}
mxj.LeafNode{Path:"doc.item.1.arm.1.-side", Value:"right"}
mxj.LeafNode{Path:"doc.item.1.arm.1.-length", Value:"3.6"}
mxj.LeafNode{Path:"doc.item.1.-num", Value:"3"}
------------------ misc_test.go ...
----------------  mxj_test.go ...
TestMap, m:
mxj.Map{"key":"value", "newkey":map[string]interface {}{"bool":true, "float":3.14159, "listkey":[]interface {}{3.1415962535, false, "for all good men"}, "string":"Now is the time"}}
TestMap, StringIndent -
key : [string] value
newkey : 
  bool : [bool] true
  float : [float64] 3.14159
  listkey : [[]interface{}]
    [float64] 3.1415962535
    [bool] false
    [string] for all good men
  string : [string] Now is the time
TestMap, StringIndent NoTypeInfo -
key : value
newkey : 
  bool : true
  float : 3.14159
  listkey : 
    3.1415962535
    false
    for all good men
  string : Now is the time
TestMap, m_fromXML:
mxj.Map{"doc":map[string]interface {}{"tag":map[string]interface {}{"sub_tag1":"Hello", "sub_tag2":"World"}}}
TestMap, StringIndent -
doc : 
  tag : 
    sub_tag1 : [string] Hello
    sub_tag2 : [string] World
TestMap, StringIndent NoTypeInfo -
doc : 
  tag : 
    sub_tag1 : Hello
    sub_tag2 : World
TestMap, m.Copy() -
 map[doc:map[tag:map[sub_tag1:Hello sub_tag2:World]]]
---------------- namespace_test.go ...
----------------  TestBeautifyXml ...
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://example.com/ns"><soapenv:Header/><soapenv:Body><ns:request><ns:customer><ns:id>123</ns:id><ns:name type="NCHZ">John Brown</ns:name></ns:customer></ns:request></soapenv:Body></soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://example.com/ns">
  <soapenv:Header/>
  <soapenv:Body>
    <ns:request>
      <ns:customer>
        <ns:id>123</ns:id>
        <ns:name type="NCHZ">John Brown</ns:name>
      </ns:customer>
    </ns:request>
  </soapenv:Body>
</soapenv:Envelope>
------------ TestNan ...
foo.bar: NAN
foo.bar: INF
foo.bar: -INF
foo.bar: NaN
----------------  newmap_test.go ...
j: { "A":"this", "B":"is", "C":"a", "D":"test" }
m: mxj.Map{"A":"this", "B":"is", "C":"a", "D":"test"}
 eval - m.NewMap("A:AA", "B:BB", "C:cc", "D:help")
n.Json(): {"AA":"this","BB":"is","cc":"a","help":"test"}
n.Xml():
 <doc><AA>this</AA><BB>is</BB><cc>a</cc><help>test</help></doc>
n.XmlIndent():
 <doc>
  <AA>this</AA>
  <BB>is</BB>
  <cc>a</cc>
  <help>test</help>
</doc>
 eval - m.NewMap("A:AA.A", "B:AA.B", "C:AA.B.cc", "D:hello.help")
n.Json(): {"AA":{"A":"this","B":["is",{"cc":"a"}]},"hello":{"help":"test"}}
n.Xml():
 <doc><AA><A>this</A><B>is</B><B><cc>a</cc></B></AA><hello><help>test</help></hello></doc>
n.XmlIndent():
 <doc>
  <AA>
    <A>this</A>
      <B>is</B>
    <B>
      <cc>a</cc>
    </B>
  </AA>
  <hello>
    <help>test</help>
  </hello>
</doc>
 eval - m.NewMap keypairs: [A:xml.AA B:xml.AA.hello.again C:xml.AA D:xml.AA.hello.help]
n.Json(): {"xml":{"AA":["this",{"hello":{"again":"is","help":"test"}},"a"]}}
n.Xml():
 <xml><AA>this</AA><AA><hello><again>is</again><help>test</help></hello></AA><AA>a</AA></xml>
n.XmlIndent():
 <xml>
  <AA>this</AA>
  <AA>
    <hello>
      <again>is</again>
      <help>test</help>
    </hello>
  </AA>
  <AA>a</AA>
</xml>
original value: 
<?xml version="1.0" encoding="UTF-8"?>
<data>
    <netid>
        <disable>no</disable>
        <text1>default:text</text1>
        <word1>default:word</word1>
    </netid>
</data>
new value:
<data>
  <netid>
    <disable>no</disable>
    <text1>default:text</text1>
    <word1>default:word</word1>
  </netid>
</data>
original value: 
<?xml version="1.0" encoding="UTF-8"?>
<data>
    <idnet>
        <disable>yes</disable>
        <text1>default:text</text1>
        <word1>default:word</word1>
    </idnet>
</data>
new value:
<data>
  <netid>
    <disable>yes</disable>
    <text1>default:text</text1>
    <word1>default:word</word1>
  </netid>
</data>
------------ rename_test.go
----------------  seqnum_test.go ...
m1: mxj.Map{"Obj":map[string]interface {}{"-c":"la", "-h":"da", "-x":"dee", "IntObj":[]interface {}{map[string]interface {}{"-id":3, "_seq":0}, map[string]interface {}{"-id":2, "_seq":2}}, "IntObj1":map[string]interface {}{"-id":1, "_seq":1}}}
{
  "Obj": {
    "-c": "la",
    "-h": "da",
    "-x": "dee",
    "IntObj": [
      {
        "-id": 3,
        "_seq": 0
      },
      {
        "-id": 2,
        "_seq": 2
      }
    ],
    "IntObj1": {
      "-id": 1,
      "_seq": 1
    }
  }
}
m2: mxj.Map{"Obj":map[string]interface {}{"-c":"la", "-h":"da", "-x":"dee", "IntObj":[]interface {}{map[string]interface {}{"-id":3, "_seq":0}, map[string]interface {}{"-id":2, "_seq":2}}, "NewObj":map[string]interface {}{"BoolObj":map[string]interface {}{"#text":true, "_seq":2}, "StringObj":map[string]interface {}{"#text":"hello", "_seq":1}, "_seq":1, "id":map[string]interface {}{"#text":1, "_seq":0}}}}
{
  "Obj": {
    "-c": "la",
    "-h": "da",
    "-x": "dee",
    "IntObj": [
      {
        "-id": 3,
        "_seq": 0
      },
      {
        "-id": 2,
        "_seq": 2
      }
    ],
    "NewObj": {
      "BoolObj": {
        "#text": true,
        "_seq": 2
      },
      "StringObj": {
        "#text": "hello",
        "_seq": 1
      },
      "_seq": 1,
      "id": {
        "#text": 1,
        "_seq": 0
      }
    }
  }
}
----------- TestSnakeCase
----------------- TestStrictModeXml ...
m: map[document:map[goes_by: lang:E name:Bill & Hallett salute:Duc & 123xx]]
----------------- TestStrictModeXmlSeq ...
m: map[document:map[goes_by:map[#seq:2 #text:] lang:map[#seq:3 #text:E] name:map[#seq:0 #text:Bill & Hallett] salute:map[#seq:1 #text:Duc & 123xx]]]
----------------- TestStrictFail ...
OK
----------------  struct_test.go ...
Struct, m: mxj.Map{"bool":true, "float":3.14159, "int":4, "private":"Somewhere over the rainbow", "str":"now's the time"}
Struct, s: mxj.str{IntVal:4, StrVal:"now's the time", FloatVal:3.14159, BoolVal:true, private:""}
StructError, mverr: mv.Struct() error: argument is not type Ptr
----------------- structvalue_test.go ...
----------------  updatevalues_test.go ...
m: map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]]
v: William T. Gaddis
v: Austin Tappan Wright
v: John Hawkes
v: map[first_name:T.E. last_name:Porter]
m.UpdateValuesForPath("author:NoName", "doc.books.book.author")
4 updates
v: NoName
v: NoName
v: NoName
v: NoName
m.UpdateValuesForPath("author:William Gadddis", "doc.books.book.author", "title:The Recognitions")
4 updates
v: William Gadddis
v: Austin Tappen Wright
v: John Hawkes
v: T. E. Porter
m.UpdateValuesForPath("author:William T. Gaddis", "doc.books.book.*", "title:The Recognitions")
1 updates
v: William T. Gaddis
v: Austin Tappen Wright
v: John Hawkes
v: T. E. Porter
m.UpdateValuesForPath("title:The Cannibal", "doc.books.book.title", "author:John Hawkes")
2 updates
v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
v: map[-seq:2 author:Austin Tappen Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
v: map[-seq:3 author:John Hawkes review:A novel on his experiences in WWII. title:The Cannibal]
v: map[-seq:4 author:T. E. Porter review:A magical novella. title:King's Day]
m.UpdateValuesForPath("books:", "doc.books")
1 updates
m: map[doc:map[books:]]
m.UpdateValuesForPath(mm, "*")
1 updates
m: map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]]
newDoc: <tag color="green" shape="square">simple element</tag>
m: map[tag:map[#text:simple element -color:green -shape:square]]
m.UpdateValuesForPath("#text:maybe not so simple element", "tag")
n: 1 m: map[tag:map[#text:maybe not so simple element -color:green -shape:square]]
m.UpdateValuesForPath("#text:simple element again", "*")
n: 1 m: map[tag:map[#text:simple element again -color:green -shape:square]]
biblio : 
  author : [[]interface{}]
    
      books : 
        book : [[]interface{}]
          
            date : [string] 1955
            review : [string] A novel that changed the face of American literature.
            title : [string] The Recognitions
          
            date : [string] 1975
            review : [string] Winner of National Book Award for Fiction.
            title : [string] JR
      name : [string] William Gaddis
    
      books : 
        book : [[]interface{}]
          
            date : [string] 1949
            review : [string] A novel on his experiences in WWII.
            title : [string] The Cannibal
          
            date : [string] 1951
            review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana.
            title : [string] The Beetle Leg
          
            date : [string] 1970
            review : [string] Where everyone wants to vacation.
            title : [string] The Blood Oranges
      name : [string] John Hawkes
m.UpdateValuesForPath("review:National Book Award winner.", "*.*.*.*", "title:JR")
1 updates
v: map[books:map[book:[map[date:1955 review:A novel that changed the face of American literature. title:The Recognitions] map[date:1975 review:National Book Award winner. title:JR]]] name:William Gaddis]
m.UpdateValuesForPath(newVal, path, oldVal)
5 updates
biblio : 
  author : [[]interface{}]
    
      books : 
        book : [[]interface{}]
          
            date : [float64] 1955
            review : [string] A novel that changed the face of American literature.
            title : [string] The Recognitions
          
            date : [float64] 1975
            review : [string] National Book Award winner.
            title : [string] JR
      name : [string] William Gaddis
    
      books : 
        book : [[]interface{}]
          
            date : [float64] 1949
            review : [string] A novel on his experiences in WWII.
            title : [string] The Cannibal
          
            date : [float64] 1951
            review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana.
            title : [string] The Beetle Leg
          
            date : [float64] 1970
            review : [string] Where everyone wants to vacation.
            title : [string] The Blood Oranges
      name : [string] John Hawkes
----------------  xml2_test.go ...
NewMapXml4, x:
 <doc> 
   <books>
      <book seq="1">
         <author>William T. Gaddis</author>
         <title>The Recognitions</title>
         <review>One of the great seminal American novels of the 20th century.</review>
      </book>
      <book seq="2">
         <author>Austin Tappan Wright</author>
         <title>Islandia</title>
         <review>An example of earlier 20th century American utopian fiction.</review>
      </book>
      <book seq="3">
         <author>John Hawkes</author>
         <title>The Beetle Leg</title>
         <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
      </book>
      <book seq="4"> 
         <author>
            <first_name>T.E.</first_name>
            <last_name>Porter</last_name>
         </author>
         <title>King's Day</title>
         <review>A magical novella.</review>
      </book>
   </books>
</doc>
NewMapXml4, m:
 map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]]
NewMapXml4, s:
 doc : 
  books : 
    book : [[]interface{}]
      
        -seq : [string] 1
        author : [string] William T. Gaddis
        review : [string] One of the great seminal American novels of the 20th century.
        title : [string] The Recognitions
      
        -seq : [string] 2
        author : [string] Austin Tappan Wright
        review : [string] An example of earlier 20th century American utopian fiction.
        title : [string] Islandia
      
        -seq : [string] 3
        author : [string] John Hawkes
        review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana.
        title : [string] The Beetle Leg
      
        -seq : [string] 4
        author : 
          first_name : [string] T.E.
          last_name : [string] Porter
        review : [string] A magical novella.
        title : [string] King's Day
NewMapXml4, b:
 <doc>
  <books>
      <book seq="1">
      <author>William T. Gaddis</author>
      <review>One of the great seminal American novels of the 20th century.</review>
      <title>The Recognitions</title>
    </book>
    <book seq="2">
      <author>Austin Tappan Wright</author>
      <review>An example of earlier 20th century American utopian fiction.</review>
      <title>Islandia</title>
    </book>
    <book seq="3">
      <author>John Hawkes</author>
      <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
      <title>The Beetle Leg</title>
    </book>
    <book seq="4">
      <author>
        <first_name>T.E.</first_name>
        <last_name>Porter</last_name>
      </author>
      <review>A magical novella.</review>
      <title>King's Day</title>
    </book>
  </books>
</doc>
NewMapXml5, raw:
 <msg mtype="alert" mpriority="1">
	<text>help me!</text>
	<song title="A Long Time" author="Mayer Hawthorne">
		<verses>
			<verse name="verse 1" no="1">
				<line no="1">Henry was a renegade</line>
				<line no="2">Didn't like to play it safe</line>
				<line no="3">One component at a time</line>
				<line no="4">There's got to be a better way</line>
				<line no="5">Oh, people came from miles around</line>
				<line no="6">Searching for a steady job</line>
				<line no="7">Welcome to the Motor Town</line>
				<line no="8">Booming like an atom bomb</line>
			</verse>
			<verse name="verse 2" no="2">
				<line no="1">Oh, Henry was the end of the story</line>
				<line no="2">Then everything went wrong</line>
				<line no="3">And we'll return it to its former glory</line>
				<line no="4">But it just takes so long</line>
			</verse>
		</verses>
		<chorus>
			<line no="1">It's going to take a long time</line>
			<line no="2">It's going to take it, but we'll make it one day</line>
			<line no="3">It's going to take a long time</line>
			<line no="4">It's going to take it, but we'll make it one day</line>
		</chorus>
	</song>
</msg>
NewMapXml5, m:
 map[msg:map[-mpriority:1 -mtype:alert song:map[-author:Mayer Hawthorne -title:A Long Time chorus:map[line:[map[#text:It's going to take a long time -no:1] map[#text:It's going to take it, but we'll make it one day -no:2] map[#text:It's going to take a long time -no:3] map[#text:It's going to take it, but we'll make it one day -no:4]]] verses:map[verse:[map[-name:verse 1 -no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2] map[#text:One component at a time -no:3] map[#text:There's got to be a better way -no:4] map[#text:Oh, people came from miles around -no:5] map[#text:Searching for a steady job -no:6] map[#text:Welcome to the Motor Town -no:7] map[#text:Booming like an atom bomb -no:8]]] map[-name:verse 2 -no:2 line:[map[#text:Oh, Henry was the end of the story -no:1] map[#text:Then everything went wrong -no:2] map[#text:And we'll return it to its former glory -no:3] map[#text:But it just takes so long -no:4]]]]]] text:help me!]]
NewMapXml5, s:
 msg : 
  -mpriority : [string] 1
  -mtype : [string] alert
  song : 
    -author : [string] Mayer Hawthorne
    -title : [string] A Long Time
    chorus : 
      line : [[]interface{}]
        
          #text : [string] It's going to take a long time
          -no : [string] 1
        
          #text : [string] It's going to take it, but we'll make it one day
          -no : [string] 2
        
          #text : [string] It's going to take a long time
          -no : [string] 3
        
          #text : [string] It's going to take it, but we'll make it one day
          -no : [string] 4
    verses : 
      verse : [[]interface{}]
        
          -name : [string] verse 1
          -no : [string] 1
          line : [[]interface{}]
            
              #text : [string] Henry was a renegade
              -no : [string] 1
            
              #text : [string] Didn't like to play it safe
              -no : [string] 2
            
              #text : [string] One component at a time
              -no : [string] 3
            
              #text : [string] There's got to be a better way
              -no : [string] 4
            
              #text : [string] Oh, people came from miles around
              -no : [string] 5
            
              #text : [string] Searching for a steady job
              -no : [string] 6
            
              #text : [string] Welcome to the Motor Town
              -no : [string] 7
            
              #text : [string] Booming like an atom bomb
              -no : [string] 8
        
          -name : [string] verse 2
          -no : [string] 2
          line : [[]interface{}]
            
              #text : [string] Oh, Henry was the end of the story
              -no : [string] 1
            
              #text : [string] Then everything went wrong
              -no : [string] 2
            
              #text : [string] And we'll return it to its former glory
              -no : [string] 3
            
              #text : [string] But it just takes so long
              -no : [string] 4
  text : [string] help me!
NewMapXml5, b:
 <msg mpriority="1" mtype="alert"><song author="Mayer Hawthorne" title="A Long Time"><chorus><line no="1">It's going to take a long time</line><line no="2">It's going to take it, but we'll make it one day</line><line no="3">It's going to take a long time</line><line no="4">It's going to take it, but we'll make it one day</line></chorus><verses><verse name="verse 1" no="1"><line no="1">Henry was a renegade</line><line no="2">Didn't like to play it safe</line><line no="3">One component at a time</line><line no="4">There's got to be a better way</line><line no="5">Oh, people came from miles around</line><line no="6">Searching for a steady job</line><line no="7">Welcome to the Motor Town</line><line no="8">Booming like an atom bomb</line></verse><verse name="verse 2" no="2"><line no="1">Oh, Henry was the end of the story</line><line no="2">Then everything went wrong</line><line no="3">And we'll return it to its former glory</line><line no="4">But it just takes so long</line></verse></verses></song><text>help me!</text></msg>
NewMapXml5, b:
 <msg mpriority="1" mtype="alert">
  <song author="Mayer Hawthorne" title="A Long Time">
    <chorus>
          <line no="1">It's going to take a long time</line>
      <line no="2">It's going to take it, but we'll make it one day</line>
      <line no="3">It's going to take a long time</line>
      <line no="4">It's going to take it, but we'll make it one day</line>
    </chorus>
    <verses>
          <verse name="verse 1" no="1">
              <line no="1">Henry was a renegade</line>
        <line no="2">Didn't like to play it safe</line>
        <line no="3">One component at a time</line>
        <line no="4">There's got to be a better way</line>
        <line no="5">Oh, people came from miles around</line>
        <line no="6">Searching for a steady job</line>
        <line no="7">Welcome to the Motor Town</line>
        <line no="8">Booming like an atom bomb</line>
      </verse>
      <verse name="verse 2" no="2">
              <line no="1">Oh, Henry was the end of the story</line>
        <line no="2">Then everything went wrong</line>
        <line no="3">And we'll return it to its former glory</line>
        <line no="4">But it just takes so long</line>
      </verse>
    </verses>
  </song>
  <text>help me!</text>
</msg>
NewMapXml6, raw:
 <?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-us" updated="2009-10-04T01:35:58+00:00"><title>Code Review - My issues</title><link href="http://codereview.appspot.com/" rel="alternate"></link><link href="http://codereview.appspot.com/rss/mine/rsc" rel="self"></link><id>http://codereview.appspot.com/</id><author><name>rietveld&lt;&gt;</name></author><entry><title>rietveld: an attempt at pubsubhubbub
</title><link href="http://codereview.appspot.com/126085" rel="alternate"></link><updated>2009-10-04T01:35:58+00:00</updated><author><name>email-address-removed</name></author><id>urn:md5:134d9179c41f806be79b3a5f7877d19a</id><summary type="html">
  An attempt at adding pubsubhubbub support to Rietveld.
http://code.google.com/p/pubsubhubbub
http://code.google.com/p/rietveld/issues/detail?id=155
The server side of the protocol is trivial:
  1. add a &amp;lt;link rel=&amp;quot;hub&amp;quot; href=&amp;quot;hub-server&amp;quot;&amp;gt; tag to all
     feeds that will be pubsubhubbubbed.
  2. every time one of those feeds changes, tell the hub
     with a simple POST request.
I have tested this by adding debug prints to a local hub
server and checking that the server got the right publish
requests.
I can&amp;#39;t quite get the server to work, but I think the bug
is not in my code.  I think that the server expects to be
able to grab the feed and see the feed&amp;#39;s actual URL in
the link rel=&amp;quot;self&amp;quot;, but the default value for that drops
the :port from the URL, and I cannot for the life of me
figure out how to get the Atom generator deep inside
django not to do that, or even where it is doing that,
or even what code is running to generate the Atom feed.
(I thought I knew but I added some assert False statements
and it kept running!)
Ignoring that particular problem, I would appreciate
feedback on the right way to get the two values at
the top of feeds.py marked NOTE(rsc).
</summary></entry><entry><title>rietveld: correct tab handling
</title><link href="http://codereview.appspot.com/124106" rel="alternate"></link><updated>2009-10-03T23:02:17+00:00</updated><author><name>email-address-removed</name></author><id>urn:md5:0a2a4f19bb815101f0ba2904aed7c35a</id><summary type="html">
  This fixes the buggy tab rendering that can be seen at
http://codereview.appspot.com/116075/diff/1/2
The fundamental problem was that the tab code was
not being told what column the text began in, so it
didn&amp;#39;t know where to put the tab stops.  Another problem
was that some of the code assumed that string byte
offsets were the same as column offsets, which is only
true if there are no tabs.
In the process of fixing this, I cleaned up the arguments
to Fold and ExpandTabs and renamed them Break and
_ExpandTabs so that I could be sure that I found all the
call sites.  I also wanted to verify that ExpandTabs was
not being used from outside intra_region_diff.py.
</summary></entry></feed>
NewMapXml6, m:
 map[feed:map[-lang:en-us -updated:2009-10-04T01:35:58+00:00 -xmlns:http://www.w3.org/2005/Atom author:map[name:rietveld<>] entry:[map[author:map[name:email-address-removed] id:urn:md5:134d9179c41f806be79b3a5f7877d19a link:map[-href:http://codereview.appspot.com/126085 -rel:alternate] summary:map[#text:An attempt at adding pubsubhubbub support to Rietveld.
http://code.google.com/p/pubsubhubbub
http://code.google.com/p/rietveld/issues/detail?id=155
The server side of the protocol is trivial:
  1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all
     feeds that will be pubsubhubbubbed.
  2. every time one of those feeds changes, tell the hub
     with a simple POST request.
I have tested this by adding debug prints to a local hub
server and checking that the server got the right publish
requests.
I can&#39;t quite get the server to work, but I think the bug
is not in my code.  I think that the server expects to be
able to grab the feed and see the feed&#39;s actual URL in
the link rel=&quot;self&quot;, but the default value for that drops
the :port from the URL, and I cannot for the life of me
figure out how to get the Atom generator deep inside
django not to do that, or even where it is doing that,
or even what code is running to generate the Atom feed.
(I thought I knew but I added some assert False statements
and it kept running!)
Ignoring that particular problem, I would appreciate
feedback on the right way to get the two values at
the top of feeds.py marked NOTE(rsc). -type:html] title:rietveld: an attempt at pubsubhubbub updated:2009-10-04T01:35:58+00:00] map[author:map[name:email-address-removed] id:urn:md5:0a2a4f19bb815101f0ba2904aed7c35a link:map[-href:http://codereview.appspot.com/124106 -rel:alternate] summary:map[#text:This fixes the buggy tab rendering that can be seen at
http://codereview.appspot.com/116075/diff/1/2
The fundamental problem was that the tab code was
not being told what column the text began in, so it
didn&#39;t know where to put the tab stops.  Another problem
was that some of the code assumed that string byte
offsets were the same as column offsets, which is only
true if there are no tabs.
In the process of fixing this, I cleaned up the arguments
to Fold and ExpandTabs and renamed them Break and
_ExpandTabs so that I could be sure that I found all the
call sites.  I also wanted to verify that ExpandTabs was
not being used from outside intra_region_diff.py. -type:html] title:rietveld: correct tab handling updated:2009-10-03T23:02:17+00:00]] id:http://codereview.appspot.com/ link:[map[-href:http://codereview.appspot.com/ -rel:alternate] map[-href:http://codereview.appspot.com/rss/mine/rsc -rel:self]] title:Code Review - My issues]]
NewMapXml6, s:
 feed : 
  -lang : [string] en-us
  -updated : [string] 2009-10-04T01:35:58+00:00
  -xmlns : [string] http://www.w3.org/2005/Atom
  author : 
    name : [string] rietveld<>
  entry : [[]interface{}]
    
      author : 
        name : [string] email-address-removed
      id : [string] urn:md5:134d9179c41f806be79b3a5f7877d19a
      link : 
        -href : [string] http://codereview.appspot.com/126085
        -rel : [string] alternate
      summary : 
        #text : [string] An attempt at adding pubsubhubbub support to Rietveld.
http://code.google.com/p/pubsubhubbub
http://code.google.com/p/rietveld/issues/detail?id=155
The server side of the protocol is trivial:
  1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all
     feeds that will be pubsubhubbubbed.
  2. every time one of those feeds changes, tell the hub
     with a simple POST request.
I have tested this by adding debug prints to a local hub
server and checking that the server got the right publish
requests.
I can&#39;t quite get the server to work, but I think the bug
is not in my code.  I think that the server expects to be
able to grab the feed and see the feed&#39;s actual URL in
the link rel=&quot;self&quot;, but the default value for that drops
the :port from the URL, and I cannot for the life of me
figure out how to get the Atom generator deep inside
django not to do that, or even where it is doing that,
or even what code is running to generate the Atom feed.
(I thought I knew but I added some assert False statements
and it kept running!)
Ignoring that particular problem, I would appreciate
feedback on the right way to get the two values at
the top of feeds.py marked NOTE(rsc).
        -type : [string] html
      title : [string] rietveld: an attempt at pubsubhubbub
      updated : [string] 2009-10-04T01:35:58+00:00
    
      author : 
        name : [string] email-address-removed
      id : [string] urn:md5:0a2a4f19bb815101f0ba2904aed7c35a
      link : 
        -href : [string] http://codereview.appspot.com/124106
        -rel : [string] alternate
      summary : 
        #text : [string] This fixes the buggy tab rendering that can be seen at
http://codereview.appspot.com/116075/diff/1/2
The fundamental problem was that the tab code was
not being told what column the text began in, so it
didn&#39;t know where to put the tab stops.  Another problem
was that some of the code assumed that string byte
offsets were the same as column offsets, which is only
true if there are no tabs.
In the process of fixing this, I cleaned up the arguments
to Fold and ExpandTabs and renamed them Break and
_ExpandTabs so that I could be sure that I found all the
call sites.  I also wanted to verify that ExpandTabs was
not being used from outside intra_region_diff.py.
        -type : [string] html
      title : [string] rietveld: correct tab handling
      updated : [string] 2009-10-03T23:02:17+00:00
  id : [string] http://codereview.appspot.com/
  link : [[]interface{}]
    
      -href : [string] http://codereview.appspot.com/
      -rel : [string] alternate
    
      -href : [string] http://codereview.appspot.com/rss/mine/rsc
      -rel : [string] self
  title : [string] Code Review - My issues
NewMapXml6, b:
 <feed lang="en-us" updated="2009-10-04T01:35:58+00:00" xmlns="http://www.w3.org/2005/Atom"><author><name>rietveld<></name></author><entry><author><name>email-address-removed</name></author><id>urn:md5:134d9179c41f806be79b3a5f7877d19a</id><link href="http://codereview.appspot.com/126085" rel="alternate"/><summary type="html">An attempt at adding pubsubhubbub support to Rietveld.
http://code.google.com/p/pubsubhubbub
http://code.google.com/p/rietveld/issues/detail?id=155
The server side of the protocol is trivial:
  1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all
     feeds that will be pubsubhubbubbed.
  2. every time one of those feeds changes, tell the hub
     with a simple POST request.
I have tested this by adding debug prints to a local hub
server and checking that the server got the right publish
requests.
I can&#39;t quite get the server to work, but I think the bug
is not in my code.  I think that the server expects to be
able to grab the feed and see the feed&#39;s actual URL in
the link rel=&quot;self&quot;, but the default value for that drops
the :port from the URL, and I cannot for the life of me
figure out how to get the Atom generator deep inside
django not to do that, or even where it is doing that,
or even what code is running to generate the Atom feed.
(I thought I knew but I added some assert False statements
and it kept running!)
Ignoring that particular problem, I would appreciate
feedback on the right way to get the two values at
the top of feeds.py marked NOTE(rsc).</summary><title>rietveld: an attempt at pubsubhubbub</title><updated>2009-10-04T01:35:58+00:00</updated></entry><entry><author><name>email-address-removed</name></author><id>urn:md5:0a2a4f19bb815101f0ba2904aed7c35a</id><link href="http://codereview.appspot.com/124106" rel="alternate"/><summary type="html">This fixes the buggy tab rendering that can be seen at
http://codereview.appspot.com/116075/diff/1/2
The fundamental problem was that the tab code was
not being told what column the text began in, so it
didn&#39;t know where to put the tab stops.  Another problem
was that some of the code assumed that string byte
offsets were the same as column offsets, which is only
true if there are no tabs.
In the process of fixing this, I cleaned up the arguments
to Fold and ExpandTabs and renamed them Break and
_ExpandTabs so that I could be sure that I found all the
call sites.  I also wanted to verify that ExpandTabs was
not being used from outside intra_region_diff.py.</summary><title>rietveld: correct tab handling</title><updated>2009-10-03T23:02:17+00:00</updated></entry><id>http://codereview.appspot.com/</id><link href="http://codereview.appspot.com/" rel="alternate"/><link href="http://codereview.appspot.com/rss/mine/rsc" rel="self"/><title>Code Review - My issues</title></feed>
NewMapXml6, b:
 <feed lang="en-us" updated="2009-10-04T01:35:58+00:00" xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>rietveld<></name>
  </author>
  <entry>
    <author>
      <name>email-address-removed</name>
    </author>
    <id>urn:md5:134d9179c41f806be79b3a5f7877d19a</id>
    <link href="http://codereview.appspot.com/126085" rel="alternate"/>
    <summary type="html">An attempt at adding pubsubhubbub support to Rietveld.
http://code.google.com/p/pubsubhubbub
http://code.google.com/p/rietveld/issues/detail?id=155
The server side of the protocol is trivial:
  1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all
     feeds that will be pubsubhubbubbed.
  2. every time one of those feeds changes, tell the hub
     with a simple POST request.
I have tested this by adding debug prints to a local hub
server and checking that the server got the right publish
requests.
I can&#39;t quite get the server to work, but I think the bug
is not in my code.  I think that the server expects to be
able to grab the feed and see the feed&#39;s actual URL in
the link rel=&quot;self&quot;, but the default value for that drops
the :port from the URL, and I cannot for the life of me
figure out how to get the Atom generator deep inside
django not to do that, or even where it is doing that,
or even what code is running to generate the Atom feed.
(I thought I knew but I added some assert False statements
and it kept running!)
Ignoring that particular problem, I would appreciate
feedback on the right way to get the two values at
the top of feeds.py marked NOTE(rsc).</summary>
    <title>rietveld: an attempt at pubsubhubbub</title>
    <updated>2009-10-04T01:35:58+00:00</updated>
  </entry>
  <entry>
    <author>
      <name>email-address-removed</name>
    </author>
    <id>urn:md5:0a2a4f19bb815101f0ba2904aed7c35a</id>
    <link href="http://codereview.appspot.com/124106" rel="alternate"/>
    <summary type="html">This fixes the buggy tab rendering that can be seen at
http://codereview.appspot.com/116075/diff/1/2
The fundamental problem was that the tab code was
not being told what column the text began in, so it
didn&#39;t know where to put the tab stops.  Another problem
was that some of the code assumed that string byte
offsets were the same as column offsets, which is only
true if there are no tabs.
In the process of fixing this, I cleaned up the arguments
to Fold and ExpandTabs and renamed them Break and
_ExpandTabs so that I could be sure that I found all the
call sites.  I also wanted to verify that ExpandTabs was
not being used from outside intra_region_diff.py.</summary>
    <title>rietveld: correct tab handling</title>
    <updated>2009-10-03T23:02:17+00:00</updated>
  </entry>
  <id>http://codereview.appspot.com/</id>
  <link href="http://codereview.appspot.com/" rel="alternate"/>
  <link href="http://codereview.appspot.com/rss/mine/rsc" rel="self"/>
  <title>Code Review - My issues</title>
</feed>
------------ xml3_test.go
========== TestOnlyAttributes
<memballoon model="virtio">
  <address bus="0x00" domain="0x0000" function="0x0" slot="0x05" type="pci"/>
  <empty/>
</memballoon>
========== TestOnlyAttributesSeq
<memballoon model="virtio">
  <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0"/>
  <empty/>
</memballoon>
========== TestDecodeSimpleValuesAsMap
xml: <item>
	<id>30102</id>
	<title>Mini Drone Inteligente - Branco</title>
	<price unit="BRL">149.90</price>
</item>
m  : map[item:map[id:map[#text:30102] price:map[#text:149.90 -unit:BRL] title:map[#text:Mini Drone Inteligente - Branco]]]
========== (default)
m  : map[item:map[id:30102 price:map[#text:149.90 -unit:BRL] title:Mini Drone Inteligente - Branco]]
----------------  xml_test.go ...
==================== TestNewMapXmlReader ...
NewMapXmlReader, raw: <root><this>is a test</this></root>
NewMapXmlReader, m  : map[root:map[this:is a test]]
NewMapXmlReader, raw: <root2><newtag>something more</newtag><list><item>1</item><item>2</item></list></root2>
NewMapXmlReader, m  : map[root2:map[list:map[item:[1 2]] newtag:something more]]
Xml_1, mv: map[boolean:true float:3.14159625 null:<nil> tag1:some data tag2:more data]
Xml_1, x : <doc><boolean>true</boolean><float>3.14159625</float><null/><tag1>some data</tag1><tag2>more data</tag2></doc>
Xml_2, mv: map[array:[string true 36.4]]
Xml_2, x : <doc><array>string</array><array>true</array><array>36.4</array></doc>
Xml_3, mv: map[array:[[string true 36.4] string2]]
Xml_3, x : <doc><array>string</array><array>true</array><array>36.4</array><array>string2</array></doc>
Xml_4, mv: map[array:map[innerkey:[[string true 36.4] string2]]]
Xml_4, x : <array><innerkey>string</innerkey><innerkey>true</innerkey><innerkey>36.4</innerkey><innerkey>string2</innerkey></array>
Xml_5, mv: map[array:[map[innerkey:[[string true 36.4] string2]] map[some:more]]]
Xml_5, x : <array><innerkey>string</innerkey><innerkey>true</innerkey><innerkey>36.4</innerkey><innerkey>string2</innerkey></array><array><some>more</some></array>
Xml_strings, mv: map[sometag:some data strings:[string1 string2]]
Xml_strings, x : <doc><sometag>some data</sometag><strings<strings>string1</strings><strings>string2</strings></doc>
XmlWriter, b  : <myRootTag><boolean>true</boolean><float>3.14159625</float><tag1>some data</tag1><tag2>more data</tag2></myRootTag>
----------------  xmlseq_test.go ...
NewMapXmlSeq, x:
 <doc> 
   <books>
      <book seq="1">
         <author>William T. Gaddis</author>
			<review>Gaddis is one of the most influential but little know authors in America.</review>
         <title>The Recognitions</title>
			<!-- here's the rest of the review -->
         <review>One of the great seminal American novels of the 20th century.</review>
         <review>Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow.</review>
      </book>
      <book seq="2">
         <author>Austin Tappan Wright</author>
         <title>Islandia</title>
         <review>An example of earlier 20th century American utopian fiction.</review>
      </book>
      <book>
         <author>John Hawkes</author>
         <title>The Beetle Leg</title>
			<!throw in a directive here>
         <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
      </book>
      <book> 
         <author>
				<?cat first_name last_name?>
            <first_name>T.E.</first_name>
            <last_name>Porter</last_name>
         </author>
         <title>King's Day</title>
         <review>A magical novella.</review>
      </book>
   </books>
</doc>
NewMapXmlSeq, s:
 doc : 
  books : 
    #seq : [int] 0
    book : [[]interface{}]
      
        #attr : 
          seq : 
            #seq : [int] 0
            #text : [string] 1
        #comment : 
          #seq : [int] 3
          #text : [string]  here's the rest of the review 
        #seq : [int] 0
        author : 
          #seq : [int] 0
          #text : [string] William T. Gaddis
        review : [[]interface{}]
          
            #seq : [int] 1
            #text : [string] Gaddis is one of the most influential but little know authors in America.
          
            #seq : [int] 4
            #text : [string] One of the great seminal American novels of the 20th century.
          
            #seq : [int] 5
            #text : [string] Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow.
        title : 
          #seq : [int] 2
          #text : [string] The Recognitions
      
        #attr : 
          seq : 
            #seq : [int] 0
            #text : [string] 2
        #seq : [int] 1
        author : 
          #seq : [int] 0
          #text : [string] Austin Tappan Wright
        review : 
          #seq : [int] 2
          #text : [string] An example of earlier 20th century American utopian fiction.
        title : 
          #seq : [int] 1
          #text : [string] Islandia
      
        #directive : 
          #seq : [int] 2
          #text : [string] throw in a directive here
        #seq : [int] 2
        author : 
          #seq : [int] 0
          #text : [string] John Hawkes
        review : 
          #seq : [int] 3
          #text : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana.
        title : 
          #seq : [int] 1
          #text : [string] The Beetle Leg
      
        #seq : [int] 3
        author : 
          #procinst : 
            #inst : [string] first_name last_name
            #seq : [int] 0
            #target : [string] cat
          #seq : [int] 0
          first_name : 
            #seq : [int] 1
            #text : [string] T.E.
          last_name : 
            #seq : [int] 2
            #text : [string] Porter
        review : 
          #seq : [int] 2
          #text : [string] A magical novella.
        title : 
          #seq : [int] 1
          #text : [string] King's Day
NewMapXmlSeq, msv.XmlIndent():
 <doc>
  <books>
    <book seq="1">
      <author>William T. Gaddis</author>
      <review>Gaddis is one of the most influential but little know authors in America.</review>
      <title>The Recognitions</title>
      <!-- here's the rest of the review -->
      <review>One of the great seminal American novels of the 20th century.</review>
      <review>Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow.</review>
    </book>
    <book seq="2">
      <author>Austin Tappan Wright</author>
      <title>Islandia</title>
      <review>An example of earlier 20th century American utopian fiction.</review>
    </book>
    <book>
      <author>John Hawkes</author>
      <title>The Beetle Leg</title>
      <!throw in a directive here>
      <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
    </book>
    <book>
      <author>
        <?cat first_name last_name?>
        <first_name>T.E.</first_name>
        <last_name>Porter</last_name>
      </author>
      <title>King's Day</title>
      <review>A magical novella.</review>
    </book>
  </books>
</doc>
------------ TestXmlSeqDecodeError ...
err ok: element book not properly terminated, got books at #461
----------- TestXMPPStreamTag ...
<stream:stream
    from='example.com'
    xmlns="jabber:client"
    xmlns:stream="http://etherx.jabber.org/streams"
    version="1.0">
map[stream:map[-from:example.com -stream:http://etherx.jabber.org/streams -version:1.0 -xmlns:jabber:client]]
<stream:features>
  <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/>
  <sm xmlns="urn:xmpp:sm:3"/>
</stream:features>
map[features:map[bind:map[-xmlns:urn:ietf:params:xml:ns:xmpp-bind] sm:map[-xmlns:urn:xmpp:sm:3]]]
<stream:stream>
map[stream:map[]]
----------- TestXMPPStreamTagSeq ...
<stream:stream
    from='example.com'
    xmlns="jabber:client"
    xmlns:stream="http://etherx.jabber.org/streams"
    version="1.0">
map[stream:stream:map[#attr:map[from:map[#seq:0 #text:example.com] version:map[#seq:3 #text:1.0] xmlns:map[#seq:1 #text:jabber:client] xmlns:stream:map[#seq:2 #text:http://etherx.jabber.org/streams]]]]
<stream:features>
  <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/>
  <sm xmlns="urn:xmpp:sm:3"/>
</stream:features>
map[stream:features:map[bind:map[#attr:map[xmlns:map[#seq:0 #text:urn:ietf:params:xml:ns:xmpp-bind]] #seq:0] sm:map[#attr:map[xmlns:map[#seq:0 #text:urn:xmpp:sm:3]] #seq:1]]]
<stream:stream>
map[stream:stream:map[]]
PASS
ok  	github.com/clbanning/mxj	0.013s
github.com/clbanning/mxj
----------------  anyxml_test.go ...
[]->x: <doc><somekey>somevalue</somekey><somekey>somevalue</somekey><element><somekey>somevalue</somekey><someotherkey>someothervalue</someotherkey></element><element>string</element><element>3.14159265</element><element>true</element></doc>
a->x: <doc><element>try</element><element>this</element><element>3.14159265</element><element>true</element></doc>
a->x: <myRootTag><myElementTag>try</myElementTag><myElementTag>this</myElementTag><myElementTag>3.14159265</myElementTag><myElementTag>true</myElementTag></myRootTag>
f->x: <doc>3.14159625</doc>
s->x: <MyStruct><somekey>somevalue</somekey><floatval>3.1415963</floatval></MyStruct>
[]->x:
 <doc>
  <somekey>somevalue</somekey>
  <somekey>somevalue</somekey>
  <element>
    <somekey>somevalue</somekey>
    <someotherkey>someothervalue</someotherkey>
  </element>
  <element>string</element>
  <element>3.14159265</element>
  <element>true</element>
</doc>
a->x:
 <doc>
  <element>try</element>
  <element>this</element>
  <element>3.14159265</element>
  <element>true</element>
</doc>
f->x:
 <doc>3.14159625</doc>
f->x:
 <myRootTag>3.14159625</myRootTag>
s->x:
 <MyStruct>
  <somekey>somevalue</somekey>
  <floatval>3.1415963</floatval>
</MyStruct>
----------------- TestPrefixDefault ...
----------------- TestPrefixNoHyphen ...
----------------- TestPrefixUnderscore ...
----------------- TestPrefixAt ...
----------------- TestMarshalPrefixDefault ...
<doc>
  <elem1 attr1="this" attr2="is">a test</elem1>
  <elem2 attr1="this" attr2="is not">a test</elem2>
</doc>
----------------- TestMarshalPrefixNoHyphen ...
x: <doc>
  <elem1>a test
    <attr1>this</attr1>
    <attr2>is</attr2>
  </elem1>
  <elem2>a test
    <attr1>this</attr1>
    <attr2>is not</attr2>
  </elem2>
</doc>
----------------- TestMarshalPrefixUnderscore ...
<doc>
  <elem1 attr1="this" attr2="is">a test</elem1>
  <elem2 attr1="this" attr2="is not">a test</elem2>
</doc>
---------------- badxml_test.go
TestBadXml ...
m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]]
m: <Allitems><Item/><Item><description>Some description goes here.</description><link>http://www.something.com</link></Item></Allitems>
TestBadXmlSeq ...
m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]]
m: <Allitems><Item/><Item><link>http://www.something.com</link><description>Some description goes here.</description></Item></Allitems>
TestBadXmlReader ...
m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]]
m: <Allitems><Item/><Item><description>Some description goes here.</description><link>http://www.something.com</link></Item></Allitems>
TestBadXmlSeqReader ...
m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]]
m: <Allitems><Item/><Item><link>http://www.something.com</link><description>Some description goes here.</description></Item></Allitems>
--------------- bom_test.go
TestBom ...
TestBomData ...
m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]]
m: <Allitems><Item/><Item><description>Some description goes here.</description><link>http://www.something.com</link></Item></Allitems>
TestBomDataSeq ...
m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]]
m: <Allitems><Item/><Item><link>http://www.something.com</link><description>Some description goes here.</description></Item></Allitems>
TestBomDataReader ...
m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]]
m: <Allitems><Item/><Item><description>Some description goes here.</description><link>http://www.something.com</link></Item></Allitems>
TestBomDataSeqReader ...
m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]]
m: <Allitems><Item/><Item><link>http://www.something.com</link><description>Some description goes here.</description></Item></Allitems>
----------------  bulk_test.go ...
XmlReader, xmldata:
 
<book>
	<author>William H. Gaddis</author>
	<title>The Recognitions</title>
	<review>One of the seminal American novels of the 20th century.</review>
</book>
<book>
	<author>William H. Gaddis</author>
	<title>JR</title>
	<review>Won the National Book Award.</end_tag_error>
</book>
<book>
	<author>Austin Tappan Wright</author>
	<title>Islandia</title>
	<review>An example of earlier 20th century American utopian fiction.</review>
</book>
<book>
	<author>John Hawkes</author>
	<title>The Beetle Leg</title>
	<review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
</book>
<book>
	<author>
		<first_name>T.E.</first_name>
		<last_name>Porter</last_name>
	</author>
	<title>King's Day</title>
	<review>A magical novella.</review>
</book>
XmlReader, result :
 {
  "book": {
    "author": "William H. Gaddis",
    "review": "One of the seminal American novels of the 20th century.",
    "title": "The Recognitions"
  }
}
{
  "book": {
    "author": "Austin Tappan Wright",
    "review": "An example of earlier 20th century American utopian fiction.",
    "title": "Islandia"
  }
}
{
  "book": {
    "author": "John Hawkes",
    "review": "A lyrical novel about the construction of Ft. Peck Dam in Montana.",
    "title": "The Beetle Leg"
  }
}
{
  "book": {
    "author": {
      "first_name": "T.E.",
      "last_name": "Porter"
    },
    "review": "A magical novella.",
    "title": "King's Day"
  }
}
XmlReader, errors :
 [xmlReader: 2] xml.Decoder.Token() - XML syntax error on line 5: element <review> closed by </end_tag_error>
[xmlReader: 3] xml.Decoder.Token() - XML syntax error on line 2: unexpected end element </book>
JsonReader, jsondata:
 
 {"book":{"author":"William H. Gaddis","review":"One of the great seminal American novels of the 20th century.","title":"The Recognitions"}}
{"book":{"author":"Austin Tappan Wright","review":"An example of earlier 20th century American utopian fiction.","title":"Islandia"}}
{"book":{"author":"John Hawkes","review":"A lyrical novel about the construction of Ft. Peck Dam in Montana.","title":"The Beetle Leg"}}
{"book":{"author":{"first_name":"T.E.","last_name":"Porter"},"review":"A magical novella.","title":"King's Day"}}
{ "here":"we", "put":"in", "an":error }
JsonReader, result  :
   <book>
    <author>William H. Gaddis</author>
    <review>One of the great seminal American novels of the 20th century.</review>
    <title>The Recognitions</title>
  </book>
  <book>
    <author>Austin Tappan Wright</author>
    <review>An example of earlier 20th century American utopian fiction.</review>
    <title>Islandia</title>
  </book>
  <book>
    <author>John Hawkes</author>
    <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
    <title>The Beetle Leg</title>
  </book>
  <book>
    <author>
      <first_name>T.E.</first_name>
      <last_name>Porter</last_name>
    </author>
    <review>A magical novella.</review>
    <title>King's Day</title>
  </book>
JsonReader, errors :
 [jsonReader: 5] invalid character 'e' looking for beginning of value
----------------  bulkraw_test.go ...
XmlReaderRaw, xmldata:
 
<book>
	<author>William H. Gaddis</author>
	<title>The Recognitions</title>
	<review>One of the seminal American novels of the 20th century.</review>
</book>
<book>
	<author>William H. Gaddis</author>
	<title>JR</title>
	<review>Won the National Book Award.</end_tag_error>
</book>
<book>
	<author>Austin Tappan Wright</author>
	<title>Islandia</title>
	<review>An example of earlier 20th century American utopian fiction.</review>
</book>
<book>
	<author>John Hawkes</author>
	<title>The Beetle Leg</title>
	<review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
</book>
<book>
	<author>
		<first_name>T.E.</first_name>
		<last_name>Porter</last_name>
	</author>
	<title>King's Day</title>
	<review>A magical novella.</review>
</book>
XmlReaderRaw, result :
 {
  "book": {
    "author": "William H. Gaddis",
    "review": "One of the seminal American novels of the 20th century.",
    "title": "The Recognitions"
  }
}
{
  "book": {
    "author": "Austin Tappan Wright",
    "review": "An example of earlier 20th century American utopian fiction.",
    "title": "Islandia"
  }
}
{
  "book": {
    "author": "John Hawkes",
    "review": "A lyrical novel about the construction of Ft. Peck Dam in Montana.",
    "title": "The Beetle Leg"
  }
}
{
  "book": {
    "author": {
      "first_name": "T.E.",
      "last_name": "Porter"
    },
    "review": "A magical novella.",
    "title": "King's Day"
  }
}
XmlReaderRaw, errors :
 [xmlReader: 2] xml.Decoder.Token() - XML syntax error on line 5: element <review> closed by </end_tag_error>
<book>
	<author>William H. Gaddis</author>
	<title>JR</title>
	<review>Won the National Book Award.</end_tag_error>
[xmlReader: 3] xml.Decoder.Token() - XML syntax error on line 2: unexpected end element </book>
</book>
JsonReaderRaw, jsondata:
 
 {"book":{"author":"William H. Gaddis","review":"One of the great seminal American novels of the 20th century.","title":"The Recognitions"}}
{"book":{"author":"Austin Tappan Wright","review":"An example of earlier 20th century American utopian fiction.","title":"Islandia"}}
{"book":{"author":"John Hawkes","review":"A lyrical novel about the construction of Ft. Peck Dam in Montana.","title":"The Beetle Leg"}}
{"book":{"author":{"first_name":"T.E.","last_name":"Porter"},"review":"A magical novella.","title":"King's Day"}}
{ "here":"we", "put":"in", "an":error }
JsonReaderRaw, result  :
   <book>
    <author>William H. Gaddis</author>
    <review>One of the great seminal American novels of the 20th century.</review>
    <title>The Recognitions</title>
  </book>
  <book>
    <author>Austin Tappan Wright</author>
    <review>An example of earlier 20th century American utopian fiction.</review>
    <title>Islandia</title>
  </book>
  <book>
    <author>John Hawkes</author>
    <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
    <title>The Beetle Leg</title>
  </book>
  <book>
    <author>
      <first_name>T.E.</first_name>
      <last_name>Porter</last_name>
    </author>
    <review>A magical novella.</review>
    <title>King's Day</title>
  </book>
JsonReaderRaw, errors :
 [jsonReader: 5] invalid character 'e' looking for beginning of value
{"here":"we","put":"in","an":error}
cast_test.go ----------
------------ TestCastDefault ...
mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":"T", "f":"f", "false":"FALSE", "true":"true"}, "float":"3.14159625", "int":"2019", "string":"string"}}
------------ TestCastTrue ...
mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":false, "true":true}, "float":3.14159625, "int":2019, "string":"string"}}
------------ TestSetCheckTagToSkipFunc ...
mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":"FALSE", "true":true}, "float":3.14159625, "int":"2019", "string":"string"}}
------------ TestCastValuesToFloat(false) ...
mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":"FALSE", "true":true}, "float":"3.14159625", "int":"2019", "string":"string"}}
------------ TestCastValuesToBool(false) ...
mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":"T", "f":"f", "false":"FALSE", "true":"true"}, "float":3.14159625, "int":"2019", "string":"string"}}
================== TestEscapeChars
 s: "'<>&
ss: &quot;&apos;&lt;&gt;&amp;
================== TestXMLEscapeChars
s: <doc>&quot;&apos;&lt;&gt;&amp;</doc>
m: <doc>
  <mychars>&quot;&apos;&lt;&gt;&amp;</mychars>
</doc>
================== TestXMLEscapeChars2
<doc><simple attr1="an attribute">&quot;&apos;&lt;&gt;&amp;</simple></doc>
map[doc:map[simple:map[#text:"'<>& _attr1:an attribute]]]
mv: <doc>
  <simple attr1="an attribute">&quot;&apos;&lt;&gt;&amp;</simple>
</doc>
================== TestXMLSeqEscapeChars
data: 
		<doc>
			<shortDescription>&gt;0-2y</shortDescription>
		</doc>
m: map[doc:map[shortDescription:map[#seq:0 #text:>0-2y]]]
m: <doc>
  <shortDescription>&gt;0-2y</shortDescription>
</doc>
================== TestXMLSeqEscapeChars2
data: 
		<doc>
			<shortDescription test="&amp;something here">&gt;0-2y</shortDescription>
			<shortDescription test="something there" quote="&quot;">&lt;10-15</shortDescription>
		</doc>
m: map[doc:map[shortDescription:[map[#attr:map[test:map[#seq:0 #text:&something here]] #seq:0 #text:>0-2y] map[#attr:map[quote:map[#seq:1 #text:"] test:map[#seq:0 #text:something there]] #seq:1 #text:<10-15]]]]
m: <doc>
  <shortDescription test="&amp;something here">&gt;0-2y</shortDescription>
  <shortDescription test="something there" quote="&quot;">&lt;10-15</shortDescription>
</doc>
------------ exists_test.go
----------------  files_test.go ...
NewMapsFromJsonFile()
map[a:test file:for files_test.go:case this:is]
map[JSON:values true:true two:2 with:just]
caught error:  stat nil: no such file or directory
caught error:  error: invalid character 'J' looking for beginning of value - reading: {"with":"some","bad":JSON,"in":"it"}
NewMapsFromJsonFileRaw()
{map[a:test file:for files_test.go:case this:is] [123 34 116 104 105 115 34 58 34 105 115 34 44 34 97 34 58 34 116 101 115 116 34 44 34 102 105 108 101 34 58 34 102 111 114 34 44 34 102 105 108 101 115 95 116 101 115 116 46 103 111 34 58 34 99 97 115 101 34 125]}
{map[JSON:values true:true two:2 with:just] [123 34 119 105 116 104 34 58 34 106 117 115 116 34 44 34 116 119 111 34 58 50 44 34 74 83 79 78 34 58 34 118 97 108 117 101 115 34 44 34 116 114 117 101 34 58 116 114 117 101 125]}
caught error:  stat nil: no such file or directory
caught error:  error: invalid character 'J' looking for beginning of value - reading: {"with":"some","bad":JSON,"in":"it"}
NewMapsFromXmlFile()
map[doc:map[data:for files.go some:test]]
map[msg:map[another:doc for:test case just:some]]
caught error:  stat nil: no such file or directory
caught error:  error: xml.Decoder.Token() - XML syntax error on line 4: element <another> closed by </other> - reading: 
<msg>
	<just>some</just>
	<another>doc</other>
NewMapsFromXmlFileRaw()
{map[doc:map[data:for files.go some:test]] [60 100 111 99 62 10 9 60 115 111 109 101 62 116 101 115 116 60 47 115 111 109 101 62 10 9 60 100 97 116 97 62 102 111 114 32 102 105 108 101 115 46 103 111 60 47 100 97 116 97 62 10 60 47 100 111 99 62]}
{map[msg:map[another:doc for:test case just:some]] [10 60 109 115 103 62 10 9 60 106 117 115 116 62 115 111 109 101 60 47 106 117 115 116 62 10 9 60 97 110 111 116 104 101 114 62 100 111 99 60 47 97 110 111 116 104 101 114 62 10 9 60 102 111 114 62 116 101 115 116 32 99 97 115 101 60 47 102 111 114 62 10 60 47 109 115 103 62]}
caught error:  stat nil: no such file or directory
caught error:  error: xml.Decoder.Token() - XML syntax error on line 4: element <another> closed by </other> - reading: 
<msg>
	<just>some</just>
	<another>doc</other>
TestMaps()
mvs: [map[a:test this:is] map[a:test this:is]]
JsonString(): {"a":"test","this":"is"}{"a":"test","this":"is"}
JsonStringIndent(): {
  "a": "test",
  "this": "is"
}
{
  "a": "test",
  "this": "is"
}
XmlString(): <doc><a>test</a><this>is</this></doc><doc><a>test</a><this>is</this></doc>
XmlStringIndent(): <doc>
  <a>test</a>
  <this>is</this>
</doc><doc>
  <a>test</a>
  <this>is</this>
</doc>
map[a:test file:for files_test.go:case this:is]
map[JSON:values true:true two:2 with:just]
files_test_dup.json written
files_test_indent.json written
map[doc:map[data:for files.go some:test]]
map[msg:map[another:doc for:test case just:some]]
files_test_dup.xml written
files_test_indent.xml written
----------------  gob_test.go ...
m: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001]
m: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001]
mv: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001]
m : map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001]
================== TestXmlCheckIsValid
map[:empty $invalid:hex$ entities:<>& nil:<nil>]
map[$invalid:hex$ entities:<>& nil:<nil>]
map[entities:<>& nil:<nil>]
map[nil:<nil>]
map[doc:map[elem:map[#seq:0 #text:element]]]
---------------- j2x_test .go ...
j2x, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null }
j2x, m    : map[key1:string key2:34 key3:true key4:unsafe: <>& key5:<nil>]
j2x, xml  : <doc><key1>string</key1><key2>34</key2><key3>true</key3><key4>unsafe: <>&</key4><key5/></doc>
----------------  json_test.go ...
NewMapJson, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null }
NewMapJson, m    : mxj.Map{"key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":interface {}(nil)}
NewMapJson, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null }
NewMapJson, m    : mxj.Map{"key1":"string", "key2":"34", "key3":true, "key4":"unsafe: <>&", "key5":interface {}(nil)}
NewMapJsonError, jdata : { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null
NewMapJsonError, merror: unexpected EOF
NewMapJsonError, newData : { "this":"is", "in":error }
NewMapJsonError, merror  : invalid character 'e' looking for beginning of value
NewMapJsonReader, jb: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&"}
NewMapJsonReader, m : mxj.Map{"key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&"}
NewMapJsonReader, jb: {"key":"value in new JSON string"}
NewMapJsonReader, m : mxj.Map{"key":"value in new JSON string"}
NewMapJsonReader, jb: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&"}
NewMapJsonReader, m : mxj.Map{"key1":"string", "key2":"34", "key3":true, "key4":"unsafe: <>&"}
NewMapJsonReader, jb: {"key":"value in new JSON string"}
NewMapJsonReader, m : mxj.Map{"key":"value in new JSON string"}
Json, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null }
Json, j    : {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&","key5":null}
Json, j safe: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: \u003c\u003e\u0026","key5":null}
JsonWriter, raw: {"and":"a","bool":true,"float":3.14159,"this":"is a"}
JsonWriter, b  : {"and":"a","bool":true,"float":3.14159,"this":"is a"}
-------------- keystolower_test.go
TestToLower ...
----------- TestSetSubkeyFieldSeparator
----------------  keyvalues_test.go ...
PathsForKey, doc1 ...
PathsForKey, doc1#author
... ss: [doc.books.book.author]
PathsForKey, doc1#books
... ss: [doc.books]
PathsForKey, doc2 ...
PathForKey, doc2#book
... ss: [doc.book doc.books.book]
PathForKeyShortest, doc2#book
... s : doc.book
ValuesForKey ...
ValuesForKey, doc1#author
... ss.v: William T. Gaddis
... ss.v: Austin Tappan Wright
... ss.v: John Hawkes
... ss.v: map[first_name:T.E. last_name:Porter]
ValuesForKey, doc1#book
... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
ValuesForKey, doc1#book,-seq:3
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
ValuesForKey, doc1#book, author:William T. Gaddis
... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
ValuesForKey, doc1#author, -seq:1
ValuesForPath ...
ValuesForPath, doc.books.book.author
... ss.v: William T. Gaddis
... ss.v: Austin Tappan Wright
... ss.v: John Hawkes
... ss.v: map[first_name:T.E. last_name:Porter]
ValuesForPath, doc.books.book
... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
ValuesForPath, doc.books.book -seq=3
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
ValuesForPath, doc.books.* -seq=3
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
ValuesForPath, doc.*.* -seq=3
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
ValuesForNotKey ...
ValuesForPath, doc.books.book !author:William T. Gaddis
... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
ValuesForPath, doc.books.book !author:*
ValuesForPath, doc.books.book !unknown:*
... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
----------------  indexedarray_test.go ...
j_data: { "stuff":[ { "data":[ { "F":1 }, { "F":2 }, { "F":3 } ] }, { "data":[ 4, 5, 6 ] } ] }
m: map[stuff:[map[data:[map[F:1] map[F:2] map[F:3]]] map[data:[4 5 6]]]]
stuff[0]: [map[data:[map[F:1] map[F:2] map[F:3]]]]
stuff.data: [map[F:1] map[F:2] map[F:3] 4 5 6]
stuff[0].data: [map[F:1] map[F:2] map[F:3]]
stuff.data[0]: [map[F:1] 4]
stuff.*[2]: [map[F:3] 6]
stuff.data.F: [1 2 3]
*.*.F: [1 2 3]
stuff.data[0].F: [1]
stuff.data[1].F: [2]
stuff[0].data[2]: [map[F:3]]
stuff[1].data[1]: [5]
stuff[1].data[1].F []
stuff[1].data.F: []
x_data: 
<doc>
	<stuff>
		<data seq="1.1">
			<F>1</F>
		</data>
		<data seq="1.2">
			<F>2</F>
		</data>
		<data seq="1.3">
			<F>3</F>
		</data>
	</stuff>
	<stuff>
		<data seq="2.1">
			<F>4</F>
		</data>
		<data seq="2.2">
			<F>5</F>
		</data>
		<data seq="2.3">
			<F>6</F>
		</data>
	</stuff>
</doc>
m: map[doc:map[stuff:[map[data:[map[-seq:1.1 F:1] map[-seq:1.2 F:2] map[-seq:1.3 F:3]]] map[data:[map[-seq:2.1 F:4] map[-seq:2.2 F:5] map[-seq:2.3 F:6]]]]]]
doc.stuff[0]: [map[data:[map[-seq:1.1 F:1] map[-seq:1.2 F:2] map[-seq:1.3 F:3]]]]
doc.stuff.data[0]: [map[-seq:1.1 F:1] map[-seq:2.1 F:4]]
doc.stuff.data[0] -seq:2.1: [map[-seq:2.1 F:4]]
doc.stuff.data[0].F: [1 4]
doc.stuff[0].data[2]: [map[-seq:1.3 F:3]]
doc.stuff[1].data[1].F: [5]
ak_data: { "section1":{"data" : [{"F1" : "F1 data","F2" : "F2 data"},{"F1" : "demo 123","F2" : "abc xyz"}]}}
m: map[section1:map[data:[map[F1:F1 data F2:F2 data] map[F1:demo 123 F2:abc xyz]]]]
section1.data[0].F1: [F1 data]
----------------  leafnode_test.go ...
json1-LeafNodes:
mxj.LeafNode{Path:"friends[0].skills[0]", Value:44}
mxj.LeafNode{Path:"friends[0].skills[1]", Value:12}
json1-LeafPaths:
"friends[0].skills[0]"
"friends[0].skills[1]"
json2-LeafNodes:
mxj.LeafNode{Path:"friends.skills[0]", Value:44}
mxj.LeafNode{Path:"friends.skills[1]", Value:12}
json1-LeafValues:
44
12
json3-LeafNodes:
mxj.LeafNode{Path:"a", Value:"list"}
mxj.LeafNode{Path:"of[0]", Value:"data"}
mxj.LeafNode{Path:"of[1]", Value:"of"}
mxj.LeafNode{Path:"of[2]", Value:3}
mxj.LeafNode{Path:"of[3]", Value:"types"}
mxj.LeafNode{Path:"of[4]", Value:true}
json3-LeafValues:
"list"
"data"
"of"
3
"types"
true
json3-LeafPaths:
"a"
"of[0]"
"of[1]"
"of[2]"
"of[3]"
"of[4]"
xml2data2-LeafValues:
mxj.LeafNode{Path:"doc.item[0].-num", Value:"2"}
mxj.LeafNode{Path:"doc.item[0].-color", Value:"blue"}
mxj.LeafNode{Path:"doc.item[0].#text", Value:"Item 2 is blue"}
mxj.LeafNode{Path:"doc.item[1].-num", Value:"3"}
mxj.LeafNode{Path:"doc.item[1].-color", Value:"green"}
mxj.LeafNode{Path:"doc.item[1].arm[0].-side", Value:"left"}
mxj.LeafNode{Path:"doc.item[1].arm[0].-length", Value:"3.5"}
mxj.LeafNode{Path:"doc.item[1].arm[1].-side", Value:"right"}
mxj.LeafNode{Path:"doc.item[1].arm[1].-length", Value:"3.6"}
xml2data2-LeafValues(NoAttributes):
mxj.LeafNode{Path:"doc.item[0]", Value:"Item 2 is blue"}
no-hyphen-xml2data2-LeafValues:
mxj.LeafNode{Path:"doc.item[0].num", Value:"2"}
mxj.LeafNode{Path:"doc.item[0].color", Value:"blue"}
mxj.LeafNode{Path:"doc.item[0].#text", Value:"Item 2 is blue"}
mxj.LeafNode{Path:"doc.item[1].num", Value:"3"}
mxj.LeafNode{Path:"doc.item[1].color", Value:"green"}
mxj.LeafNode{Path:"doc.item[1].arm[0].length", Value:"3.5"}
mxj.LeafNode{Path:"doc.item[1].arm[0].side", Value:"left"}
mxj.LeafNode{Path:"doc.item[1].arm[1].side", Value:"right"}
mxj.LeafNode{Path:"doc.item[1].arm[1].length", Value:"3.6"}
no-hyphen-xml2data2-LeafValues(NoAttributes):
mxj.LeafNode{Path:"doc.item[0].color", Value:"blue"}
mxj.LeafNode{Path:"doc.item[0]", Value:"Item 2 is blue"}
mxj.LeafNode{Path:"doc.item[0].num", Value:"2"}
mxj.LeafNode{Path:"doc.item[1].num", Value:"3"}
mxj.LeafNode{Path:"doc.item[1].color", Value:"green"}
mxj.LeafNode{Path:"doc.item[1].arm[0].side", Value:"left"}
mxj.LeafNode{Path:"doc.item[1].arm[0].length", Value:"3.5"}
mxj.LeafNode{Path:"doc.item[1].arm[1].side", Value:"right"}
mxj.LeafNode{Path:"doc.item[1].arm[1].length", Value:"3.6"}
DotNotation-LeafValues:
mxj.LeafNode{Path:"doc.item.0.-num", Value:"2"}
mxj.LeafNode{Path:"doc.item.0.-color", Value:"blue"}
mxj.LeafNode{Path:"doc.item.0.#text", Value:"Item 2 is blue"}
mxj.LeafNode{Path:"doc.item.1.-num", Value:"3"}
mxj.LeafNode{Path:"doc.item.1.-color", Value:"green"}
mxj.LeafNode{Path:"doc.item.1.arm.0.-side", Value:"left"}
mxj.LeafNode{Path:"doc.item.1.arm.0.-length", Value:"3.5"}
mxj.LeafNode{Path:"doc.item.1.arm.1.-length", Value:"3.6"}
mxj.LeafNode{Path:"doc.item.1.arm.1.-side", Value:"right"}
------------------ misc_test.go ...
----------------  mxj_test.go ...
TestMap, m:
mxj.Map{"key":"value", "newkey":map[string]interface {}{"bool":true, "float":3.14159, "listkey":[]interface {}{3.1415962535, false, "for all good men"}, "string":"Now is the time"}}
TestMap, StringIndent -
key : [string] value
newkey : 
  bool : [bool] true
  float : [float64] 3.14159
  listkey : [[]interface{}]
    [float64] 3.1415962535
    [bool] false
    [string] for all good men
  string : [string] Now is the time
TestMap, StringIndent NoTypeInfo -
key : value
newkey : 
  bool : true
  float : 3.14159
  listkey : 
    3.1415962535
    false
    for all good men
  string : Now is the time
TestMap, m_fromXML:
mxj.Map{"doc":map[string]interface {}{"tag":map[string]interface {}{"sub_tag1":"Hello", "sub_tag2":"World"}}}
TestMap, StringIndent -
doc : 
  tag : 
    sub_tag1 : [string] Hello
    sub_tag2 : [string] World
TestMap, StringIndent NoTypeInfo -
doc : 
  tag : 
    sub_tag1 : Hello
    sub_tag2 : World
TestMap, m.Copy() -
 map[doc:map[tag:map[sub_tag1:Hello sub_tag2:World]]]
---------------- namespace_test.go ...
----------------  TestBeautifyXml ...
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://example.com/ns"><soapenv:Header/><soapenv:Body><ns:request><ns:customer><ns:id>123</ns:id><ns:name type="NCHZ">John Brown</ns:name></ns:customer></ns:request></soapenv:Body></soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://example.com/ns">
  <soapenv:Header/>
  <soapenv:Body>
    <ns:request>
      <ns:customer>
        <ns:id>123</ns:id>
        <ns:name type="NCHZ">John Brown</ns:name>
      </ns:customer>
    </ns:request>
  </soapenv:Body>
</soapenv:Envelope>
------------ TestNan ...
foo.bar: NAN
foo.bar: INF
foo.bar: -INF
foo.bar: NaN
----------------  newmap_test.go ...
j: { "A":"this", "B":"is", "C":"a", "D":"test" }
m: mxj.Map{"A":"this", "B":"is", "C":"a", "D":"test"}
 eval - m.NewMap("A:AA", "B:BB", "C:cc", "D:help")
n.Json(): {"AA":"this","BB":"is","cc":"a","help":"test"}
n.Xml():
 <doc><AA>this</AA><BB>is</BB><cc>a</cc><help>test</help></doc>
n.XmlIndent():
 <doc>
  <AA>this</AA>
  <BB>is</BB>
  <cc>a</cc>
  <help>test</help>
</doc>
 eval - m.NewMap("A:AA.A", "B:AA.B", "C:AA.B.cc", "D:hello.help")
n.Json(): {"AA":{"A":"this","B":["is",{"cc":"a"}]},"hello":{"help":"test"}}
n.Xml():
 <doc><AA><A>this</A><B>is</B><B><cc>a</cc></B></AA><hello><help>test</help></hello></doc>
n.XmlIndent():
 <doc>
  <AA>
    <A>this</A>
      <B>is</B>
    <B>
      <cc>a</cc>
    </B>
  </AA>
  <hello>
    <help>test</help>
  </hello>
</doc>
 eval - m.NewMap keypairs: [A:xml.AA B:xml.AA.hello.again C:xml.AA D:xml.AA.hello.help]
n.Json(): {"xml":{"AA":["this",{"hello":{"again":"is","help":"test"}},"a"]}}
n.Xml():
 <xml><AA>this</AA><AA><hello><again>is</again><help>test</help></hello></AA><AA>a</AA></xml>
n.XmlIndent():
 <xml>
  <AA>this</AA>
  <AA>
    <hello>
      <again>is</again>
      <help>test</help>
    </hello>
  </AA>
  <AA>a</AA>
</xml>
original value: 
<?xml version="1.0" encoding="UTF-8"?>
<data>
    <netid>
        <disable>no</disable>
        <text1>default:text</text1>
        <word1>default:word</word1>
    </netid>
</data>
new value:
<data>
  <netid>
    <disable>no</disable>
    <text1>default:text</text1>
    <word1>default:word</word1>
  </netid>
</data>
original value: 
<?xml version="1.0" encoding="UTF-8"?>
<data>
    <idnet>
        <disable>yes</disable>
        <text1>default:text</text1>
        <word1>default:word</word1>
    </idnet>
</data>
new value:
<data>
  <netid>
    <disable>yes</disable>
    <text1>default:text</text1>
    <word1>default:word</word1>
  </netid>
</data>
------------ rename_test.go
----------------  seqnum_test.go ...
m1: mxj.Map{"Obj":map[string]interface {}{"-c":"la", "-h":"da", "-x":"dee", "IntObj":[]interface {}{map[string]interface {}{"-id":3, "_seq":0}, map[string]interface {}{"-id":2, "_seq":2}}, "IntObj1":map[string]interface {}{"-id":1, "_seq":1}}}
{
  "Obj": {
    "-c": "la",
    "-h": "da",
    "-x": "dee",
    "IntObj": [
      {
        "-id": 3,
        "_seq": 0
      },
      {
        "-id": 2,
        "_seq": 2
      }
    ],
    "IntObj1": {
      "-id": 1,
      "_seq": 1
    }
  }
}
m2: mxj.Map{"Obj":map[string]interface {}{"-c":"la", "-h":"da", "-x":"dee", "IntObj":[]interface {}{map[string]interface {}{"-id":3, "_seq":0}, map[string]interface {}{"-id":2, "_seq":2}}, "NewObj":map[string]interface {}{"BoolObj":map[string]interface {}{"#text":true, "_seq":2}, "StringObj":map[string]interface {}{"#text":"hello", "_seq":1}, "_seq":1, "id":map[string]interface {}{"#text":1, "_seq":0}}}}
{
  "Obj": {
    "-c": "la",
    "-h": "da",
    "-x": "dee",
    "IntObj": [
      {
        "-id": 3,
        "_seq": 0
      },
      {
        "-id": 2,
        "_seq": 2
      }
    ],
    "NewObj": {
      "BoolObj": {
        "#text": true,
        "_seq": 2
      },
      "StringObj": {
        "#text": "hello",
        "_seq": 1
      },
      "_seq": 1,
      "id": {
        "#text": 1,
        "_seq": 0
      }
    }
  }
}
----------- TestSnakeCase
----------------- TestStrictModeXml ...
m: map[document:map[goes_by: lang:E name:Bill & Hallett salute:Duc & 123xx]]
----------------- TestStrictModeXmlSeq ...
m: map[document:map[goes_by:map[#seq:2 #text:] lang:map[#seq:3 #text:E] name:map[#seq:0 #text:Bill & Hallett] salute:map[#seq:1 #text:Duc & 123xx]]]
----------------- TestStrictFail ...
OK
----------------  struct_test.go ...
Struct, m: mxj.Map{"bool":true, "float":3.14159, "int":4, "private":"Somewhere over the rainbow", "str":"now's the time"}
Struct, s: mxj.str{IntVal:4, StrVal:"now's the time", FloatVal:3.14159, BoolVal:true, private:""}
StructError, mverr: mv.Struct() error: argument is not type Ptr
----------------- structvalue_test.go ...
----------------  updatevalues_test.go ...
m: map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]]
v: William T. Gaddis
v: Austin Tappan Wright
v: John Hawkes
v: map[first_name:T.E. last_name:Porter]
m.UpdateValuesForPath("author:NoName", "doc.books.book.author")
4 updates
v: NoName
v: NoName
v: NoName
v: NoName
m.UpdateValuesForPath("author:William Gadddis", "doc.books.book.author", "title:The Recognitions")
4 updates
v: William Gadddis
v: Austin Tappen Wright
v: John Hawkes
v: T. E. Porter
m.UpdateValuesForPath("author:William T. Gaddis", "doc.books.book.*", "title:The Recognitions")
1 updates
v: William T. Gaddis
v: Austin Tappen Wright
v: John Hawkes
v: T. E. Porter
m.UpdateValuesForPath("title:The Cannibal", "doc.books.book.title", "author:John Hawkes")
2 updates
v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
v: map[-seq:2 author:Austin Tappen Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
v: map[-seq:3 author:John Hawkes review:A novel on his experiences in WWII. title:The Cannibal]
v: map[-seq:4 author:T. E. Porter review:A magical novella. title:King's Day]
m.UpdateValuesForPath("books:", "doc.books")
1 updates
m: map[doc:map[books:]]
m.UpdateValuesForPath(mm, "*")
1 updates
m: map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]]
newDoc: <tag color="green" shape="square">simple element</tag>
m: map[tag:map[#text:simple element -color:green -shape:square]]
m.UpdateValuesForPath("#text:maybe not so simple element", "tag")
n: 1 m: map[tag:map[#text:maybe not so simple element -color:green -shape:square]]
m.UpdateValuesForPath("#text:simple element again", "*")
n: 1 m: map[tag:map[#text:simple element again -color:green -shape:square]]
biblio : 
  author : [[]interface{}]
    
      books : 
        book : [[]interface{}]
          
            date : [string] 1955
            review : [string] A novel that changed the face of American literature.
            title : [string] The Recognitions
          
            date : [string] 1975
            review : [string] Winner of National Book Award for Fiction.
            title : [string] JR
      name : [string] William Gaddis
    
      books : 
        book : [[]interface{}]
          
            date : [string] 1949
            review : [string] A novel on his experiences in WWII.
            title : [string] The Cannibal
          
            date : [string] 1951
            review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana.
            title : [string] The Beetle Leg
          
            date : [string] 1970
            review : [string] Where everyone wants to vacation.
            title : [string] The Blood Oranges
      name : [string] John Hawkes
m.UpdateValuesForPath("review:National Book Award winner.", "*.*.*.*", "title:JR")
1 updates
v: map[books:map[book:[map[date:1955 review:A novel that changed the face of American literature. title:The Recognitions] map[date:1975 review:National Book Award winner. title:JR]]] name:William Gaddis]
m.UpdateValuesForPath(newVal, path, oldVal)
5 updates
biblio : 
  author : [[]interface{}]
    
      books : 
        book : [[]interface{}]
          
            date : [float64] 1955
            review : [string] A novel that changed the face of American literature.
            title : [string] The Recognitions
          
            date : [float64] 1975
            review : [string] National Book Award winner.
            title : [string] JR
      name : [string] William Gaddis
    
      books : 
        book : [[]interface{}]
          
            date : [float64] 1949
            review : [string] A novel on his experiences in WWII.
            title : [string] The Cannibal
          
            date : [float64] 1951
            review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana.
            title : [string] The Beetle Leg
          
            date : [float64] 1970
            review : [string] Where everyone wants to vacation.
            title : [string] The Blood Oranges
      name : [string] John Hawkes
----------------  xml2_test.go ...
NewMapXml4, x:
 <doc> 
   <books>
      <book seq="1">
         <author>William T. Gaddis</author>
         <title>The Recognitions</title>
         <review>One of the great seminal American novels of the 20th century.</review>
      </book>
      <book seq="2">
         <author>Austin Tappan Wright</author>
         <title>Islandia</title>
         <review>An example of earlier 20th century American utopian fiction.</review>
      </book>
      <book seq="3">
         <author>John Hawkes</author>
         <title>The Beetle Leg</title>
         <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
      </book>
      <book seq="4"> 
         <author>
            <first_name>T.E.</first_name>
            <last_name>Porter</last_name>
         </author>
         <title>King's Day</title>
         <review>A magical novella.</review>
      </book>
   </books>
</doc>
NewMapXml4, m:
 map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]]
NewMapXml4, s:
 doc : 
  books : 
    book : [[]interface{}]
      
        -seq : [string] 1
        author : [string] William T. Gaddis
        review : [string] One of the great seminal American novels of the 20th century.
        title : [string] The Recognitions
      
        -seq : [string] 2
        author : [string] Austin Tappan Wright
        review : [string] An example of earlier 20th century American utopian fiction.
        title : [string] Islandia
      
        -seq : [string] 3
        author : [string] John Hawkes
        review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana.
        title : [string] The Beetle Leg
      
        -seq : [string] 4
        author : 
          first_name : [string] T.E.
          last_name : [string] Porter
        review : [string] A magical novella.
        title : [string] King's Day
NewMapXml4, b:
 <doc>
  <books>
      <book seq="1">
      <author>William T. Gaddis</author>
      <review>One of the great seminal American novels of the 20th century.</review>
      <title>The Recognitions</title>
    </book>
    <book seq="2">
      <author>Austin Tappan Wright</author>
      <review>An example of earlier 20th century American utopian fiction.</review>
      <title>Islandia</title>
    </book>
    <book seq="3">
      <author>John Hawkes</author>
      <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
      <title>The Beetle Leg</title>
    </book>
    <book seq="4">
      <author>
        <first_name>T.E.</first_name>
        <last_name>Porter</last_name>
      </author>
      <review>A magical novella.</review>
      <title>King's Day</title>
    </book>
  </books>
</doc>
NewMapXml5, raw:
 <msg mtype="alert" mpriority="1">
	<text>help me!</text>
	<song title="A Long Time" author="Mayer Hawthorne">
		<verses>
			<verse name="verse 1" no="1">
				<line no="1">Henry was a renegade</line>
				<line no="2">Didn't like to play it safe</line>
				<line no="3">One component at a time</line>
				<line no="4">There's got to be a better way</line>
				<line no="5">Oh, people came from miles around</line>
				<line no="6">Searching for a steady job</line>
				<line no="7">Welcome to the Motor Town</line>
				<line no="8">Booming like an atom bomb</line>
			</verse>
			<verse name="verse 2" no="2">
				<line no="1">Oh, Henry was the end of the story</line>
				<line no="2">Then everything went wrong</line>
				<line no="3">And we'll return it to its former glory</line>
				<line no="4">But it just takes so long</line>
			</verse>
		</verses>
		<chorus>
			<line no="1">It's going to take a long time</line>
			<line no="2">It's going to take it, but we'll make it one day</line>
			<line no="3">It's going to take a long time</line>
			<line no="4">It's going to take it, but we'll make it one day</line>
		</chorus>
	</song>
</msg>
NewMapXml5, m:
 map[msg:map[-mpriority:1 -mtype:alert song:map[-author:Mayer Hawthorne -title:A Long Time chorus:map[line:[map[#text:It's going to take a long time -no:1] map[#text:It's going to take it, but we'll make it one day -no:2] map[#text:It's going to take a long time -no:3] map[#text:It's going to take it, but we'll make it one day -no:4]]] verses:map[verse:[map[-name:verse 1 -no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2] map[#text:One component at a time -no:3] map[#text:There's got to be a better way -no:4] map[#text:Oh, people came from miles around -no:5] map[#text:Searching for a steady job -no:6] map[#text:Welcome to the Motor Town -no:7] map[#text:Booming like an atom bomb -no:8]]] map[-name:verse 2 -no:2 line:[map[#text:Oh, Henry was the end of the story -no:1] map[#text:Then everything went wrong -no:2] map[#text:And we'll return it to its former glory -no:3] map[#text:But it just takes so long -no:4]]]]]] text:help me!]]
NewMapXml5, s:
 msg : 
  -mpriority : [string] 1
  -mtype : [string] alert
  song : 
    -author : [string] Mayer Hawthorne
    -title : [string] A Long Time
    chorus : 
      line : [[]interface{}]
        
          #text : [string] It's going to take a long time
          -no : [string] 1
        
          #text : [string] It's going to take it, but we'll make it one day
          -no : [string] 2
        
          #text : [string] It's going to take a long time
          -no : [string] 3
        
          #text : [string] It's going to take it, but we'll make it one day
          -no : [string] 4
    verses : 
      verse : [[]interface{}]
        
          -name : [string] verse 1
          -no : [string] 1
          line : [[]interface{}]
            
              #text : [string] Henry was a renegade
              -no : [string] 1
            
              #text : [string] Didn't like to play it safe
              -no : [string] 2
            
              #text : [string] One component at a time
              -no : [string] 3
            
              #text : [string] There's got to be a better way
              -no : [string] 4
            
              #text : [string] Oh, people came from miles around
              -no : [string] 5
            
              #text : [string] Searching for a steady job
              -no : [string] 6
            
              #text : [string] Welcome to the Motor Town
              -no : [string] 7
            
              #text : [string] Booming like an atom bomb
              -no : [string] 8
        
          -name : [string] verse 2
          -no : [string] 2
          line : [[]interface{}]
            
              #text : [string] Oh, Henry was the end of the story
              -no : [string] 1
            
              #text : [string] Then everything went wrong
              -no : [string] 2
            
              #text : [string] And we'll return it to its former glory
              -no : [string] 3
            
              #text : [string] But it just takes so long
              -no : [string] 4
  text : [string] help me!
NewMapXml5, b:
 <msg mpriority="1" mtype="alert"><song author="Mayer Hawthorne" title="A Long Time"><chorus><line no="1">It's going to take a long time</line><line no="2">It's going to take it, but we'll make it one day</line><line no="3">It's going to take a long time</line><line no="4">It's going to take it, but we'll make it one day</line></chorus><verses><verse name="verse 1" no="1"><line no="1">Henry was a renegade</line><line no="2">Didn't like to play it safe</line><line no="3">One component at a time</line><line no="4">There's got to be a better way</line><line no="5">Oh, people came from miles around</line><line no="6">Searching for a steady job</line><line no="7">Welcome to the Motor Town</line><line no="8">Booming like an atom bomb</line></verse><verse name="verse 2" no="2"><line no="1">Oh, Henry was the end of the story</line><line no="2">Then everything went wrong</line><line no="3">And we'll return it to its former glory</line><line no="4">But it just takes so long</line></verse></verses></song><text>help me!</text></msg>
NewMapXml5, b:
 <msg mpriority="1" mtype="alert">
  <song author="Mayer Hawthorne" title="A Long Time">
    <chorus>
          <line no="1">It's going to take a long time</line>
      <line no="2">It's going to take it, but we'll make it one day</line>
      <line no="3">It's going to take a long time</line>
      <line no="4">It's going to take it, but we'll make it one day</line>
    </chorus>
    <verses>
          <verse name="verse 1" no="1">
              <line no="1">Henry was a renegade</line>
        <line no="2">Didn't like to play it safe</line>
        <line no="3">One component at a time</line>
        <line no="4">There's got to be a better way</line>
        <line no="5">Oh, people came from miles around</line>
        <line no="6">Searching for a steady job</line>
        <line no="7">Welcome to the Motor Town</line>
        <line no="8">Booming like an atom bomb</line>
      </verse>
      <verse name="verse 2" no="2">
              <line no="1">Oh, Henry was the end of the story</line>
        <line no="2">Then everything went wrong</line>
        <line no="3">And we'll return it to its former glory</line>
        <line no="4">But it just takes so long</line>
      </verse>
    </verses>
  </song>
  <text>help me!</text>
</msg>
NewMapXml6, raw:
 <?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-us" updated="2009-10-04T01:35:58+00:00"><title>Code Review - My issues</title><link href="http://codereview.appspot.com/" rel="alternate"></link><link href="http://codereview.appspot.com/rss/mine/rsc" rel="self"></link><id>http://codereview.appspot.com/</id><author><name>rietveld&lt;&gt;</name></author><entry><title>rietveld: an attempt at pubsubhubbub
</title><link href="http://codereview.appspot.com/126085" rel="alternate"></link><updated>2009-10-04T01:35:58+00:00</updated><author><name>email-address-removed</name></author><id>urn:md5:134d9179c41f806be79b3a5f7877d19a</id><summary type="html">
  An attempt at adding pubsubhubbub support to Rietveld.
http://code.google.com/p/pubsubhubbub
http://code.google.com/p/rietveld/issues/detail?id=155
The server side of the protocol is trivial:
  1. add a &amp;lt;link rel=&amp;quot;hub&amp;quot; href=&amp;quot;hub-server&amp;quot;&amp;gt; tag to all
     feeds that will be pubsubhubbubbed.
  2. every time one of those feeds changes, tell the hub
     with a simple POST request.
I have tested this by adding debug prints to a local hub
server and checking that the server got the right publish
requests.
I can&amp;#39;t quite get the server to work, but I think the bug
is not in my code.  I think that the server expects to be
able to grab the feed and see the feed&amp;#39;s actual URL in
the link rel=&amp;quot;self&amp;quot;, but the default value for that drops
the :port from the URL, and I cannot for the life of me
figure out how to get the Atom generator deep inside
django not to do that, or even where it is doing that,
or even what code is running to generate the Atom feed.
(I thought I knew but I added some assert False statements
and it kept running!)
Ignoring that particular problem, I would appreciate
feedback on the right way to get the two values at
the top of feeds.py marked NOTE(rsc).
</summary></entry><entry><title>rietveld: correct tab handling
</title><link href="http://codereview.appspot.com/124106" rel="alternate"></link><updated>2009-10-03T23:02:17+00:00</updated><author><name>email-address-removed</name></author><id>urn:md5:0a2a4f19bb815101f0ba2904aed7c35a</id><summary type="html">
  This fixes the buggy tab rendering that can be seen at
http://codereview.appspot.com/116075/diff/1/2
The fundamental problem was that the tab code was
not being told what column the text began in, so it
didn&amp;#39;t know where to put the tab stops.  Another problem
was that some of the code assumed that string byte
offsets were the same as column offsets, which is only
true if there are no tabs.
In the process of fixing this, I cleaned up the arguments
to Fold and ExpandTabs and renamed them Break and
_ExpandTabs so that I could be sure that I found all the
call sites.  I also wanted to verify that ExpandTabs was
not being used from outside intra_region_diff.py.
</summary></entry></feed>
NewMapXml6, m:
 map[feed:map[-lang:en-us -updated:2009-10-04T01:35:58+00:00 -xmlns:http://www.w3.org/2005/Atom author:map[name:rietveld<>] entry:[map[author:map[name:email-address-removed] id:urn:md5:134d9179c41f806be79b3a5f7877d19a link:map[-href:http://codereview.appspot.com/126085 -rel:alternate] summary:map[#text:An attempt at adding pubsubhubbub support to Rietveld.
http://code.google.com/p/pubsubhubbub
http://code.google.com/p/rietveld/issues/detail?id=155
The server side of the protocol is trivial:
  1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all
     feeds that will be pubsubhubbubbed.
  2. every time one of those feeds changes, tell the hub
     with a simple POST request.
I have tested this by adding debug prints to a local hub
server and checking that the server got the right publish
requests.
I can&#39;t quite get the server to work, but I think the bug
is not in my code.  I think that the server expects to be
able to grab the feed and see the feed&#39;s actual URL in
the link rel=&quot;self&quot;, but the default value for that drops
the :port from the URL, and I cannot for the life of me
figure out how to get the Atom generator deep inside
django not to do that, or even where it is doing that,
or even what code is running to generate the Atom feed.
(I thought I knew but I added some assert False statements
and it kept running!)
Ignoring that particular problem, I would appreciate
feedback on the right way to get the two values at
the top of feeds.py marked NOTE(rsc). -type:html] title:rietveld: an attempt at pubsubhubbub updated:2009-10-04T01:35:58+00:00] map[author:map[name:email-address-removed] id:urn:md5:0a2a4f19bb815101f0ba2904aed7c35a link:map[-href:http://codereview.appspot.com/124106 -rel:alternate] summary:map[#text:This fixes the buggy tab rendering that can be seen at
http://codereview.appspot.com/116075/diff/1/2
The fundamental problem was that the tab code was
not being told what column the text began in, so it
didn&#39;t know where to put the tab stops.  Another problem
was that some of the code assumed that string byte
offsets were the same as column offsets, which is only
true if there are no tabs.
In the process of fixing this, I cleaned up the arguments
to Fold and ExpandTabs and renamed them Break and
_ExpandTabs so that I could be sure that I found all the
call sites.  I also wanted to verify that ExpandTabs was
not being used from outside intra_region_diff.py. -type:html] title:rietveld: correct tab handling updated:2009-10-03T23:02:17+00:00]] id:http://codereview.appspot.com/ link:[map[-href:http://codereview.appspot.com/ -rel:alternate] map[-href:http://codereview.appspot.com/rss/mine/rsc -rel:self]] title:Code Review - My issues]]
NewMapXml6, s:
 feed : 
  -lang : [string] en-us
  -updated : [string] 2009-10-04T01:35:58+00:00
  -xmlns : [string] http://www.w3.org/2005/Atom
  author : 
    name : [string] rietveld<>
  entry : [[]interface{}]
    
      author : 
        name : [string] email-address-removed
      id : [string] urn:md5:134d9179c41f806be79b3a5f7877d19a
      link : 
        -href : [string] http://codereview.appspot.com/126085
        -rel : [string] alternate
      summary : 
        #text : [string] An attempt at adding pubsubhubbub support to Rietveld.
http://code.google.com/p/pubsubhubbub
http://code.google.com/p/rietveld/issues/detail?id=155
The server side of the protocol is trivial:
  1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all
     feeds that will be pubsubhubbubbed.
  2. every time one of those feeds changes, tell the hub
     with a simple POST request.
I have tested this by adding debug prints to a local hub
server and checking that the server got the right publish
requests.
I can&#39;t quite get the server to work, but I think the bug
is not in my code.  I think that the server expects to be
able to grab the feed and see the feed&#39;s actual URL in
the link rel=&quot;self&quot;, but the default value for that drops
the :port from the URL, and I cannot for the life of me
figure out how to get the Atom generator deep inside
django not to do that, or even where it is doing that,
or even what code is running to generate the Atom feed.
(I thought I knew but I added some assert False statements
and it kept running!)
Ignoring that particular problem, I would appreciate
feedback on the right way to get the two values at
the top of feeds.py marked NOTE(rsc).
        -type : [string] html
      title : [string] rietveld: an attempt at pubsubhubbub
      updated : [string] 2009-10-04T01:35:58+00:00
    
      author : 
        name : [string] email-address-removed
      id : [string] urn:md5:0a2a4f19bb815101f0ba2904aed7c35a
      link : 
        -href : [string] http://codereview.appspot.com/124106
        -rel : [string] alternate
      summary : 
        #text : [string] This fixes the buggy tab rendering that can be seen at
http://codereview.appspot.com/116075/diff/1/2
The fundamental problem was that the tab code was
not being told what column the text began in, so it
didn&#39;t know where to put the tab stops.  Another problem
was that some of the code assumed that string byte
offsets were the same as column offsets, which is only
true if there are no tabs.
In the process of fixing this, I cleaned up the arguments
to Fold and ExpandTabs and renamed them Break and
_ExpandTabs so that I could be sure that I found all the
call sites.  I also wanted to verify that ExpandTabs was
not being used from outside intra_region_diff.py.
        -type : [string] html
      title : [string] rietveld: correct tab handling
      updated : [string] 2009-10-03T23:02:17+00:00
  id : [string] http://codereview.appspot.com/
  link : [[]interface{}]
    
      -href : [string] http://codereview.appspot.com/
      -rel : [string] alternate
    
      -href : [string] http://codereview.appspot.com/rss/mine/rsc
      -rel : [string] self
  title : [string] Code Review - My issues
NewMapXml6, b:
 <feed lang="en-us" updated="2009-10-04T01:35:58+00:00" xmlns="http://www.w3.org/2005/Atom"><author><name>rietveld<></name></author><entry><author><name>email-address-removed</name></author><id>urn:md5:134d9179c41f806be79b3a5f7877d19a</id><link href="http://codereview.appspot.com/126085" rel="alternate"/><summary type="html">An attempt at adding pubsubhubbub support to Rietveld.
http://code.google.com/p/pubsubhubbub
http://code.google.com/p/rietveld/issues/detail?id=155
The server side of the protocol is trivial:
  1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all
     feeds that will be pubsubhubbubbed.
  2. every time one of those feeds changes, tell the hub
     with a simple POST request.
I have tested this by adding debug prints to a local hub
server and checking that the server got the right publish
requests.
I can&#39;t quite get the server to work, but I think the bug
is not in my code.  I think that the server expects to be
able to grab the feed and see the feed&#39;s actual URL in
the link rel=&quot;self&quot;, but the default value for that drops
the :port from the URL, and I cannot for the life of me
figure out how to get the Atom generator deep inside
django not to do that, or even where it is doing that,
or even what code is running to generate the Atom feed.
(I thought I knew but I added some assert False statements
and it kept running!)
Ignoring that particular problem, I would appreciate
feedback on the right way to get the two values at
the top of feeds.py marked NOTE(rsc).</summary><title>rietveld: an attempt at pubsubhubbub</title><updated>2009-10-04T01:35:58+00:00</updated></entry><entry><author><name>email-address-removed</name></author><id>urn:md5:0a2a4f19bb815101f0ba2904aed7c35a</id><link href="http://codereview.appspot.com/124106" rel="alternate"/><summary type="html">This fixes the buggy tab rendering that can be seen at
http://codereview.appspot.com/116075/diff/1/2
The fundamental problem was that the tab code was
not being told what column the text began in, so it
didn&#39;t know where to put the tab stops.  Another problem
was that some of the code assumed that string byte
offsets were the same as column offsets, which is only
true if there are no tabs.
In the process of fixing this, I cleaned up the arguments
to Fold and ExpandTabs and renamed them Break and
_ExpandTabs so that I could be sure that I found all the
call sites.  I also wanted to verify that ExpandTabs was
not being used from outside intra_region_diff.py.</summary><title>rietveld: correct tab handling</title><updated>2009-10-03T23:02:17+00:00</updated></entry><id>http://codereview.appspot.com/</id><link href="http://codereview.appspot.com/" rel="alternate"/><link href="http://codereview.appspot.com/rss/mine/rsc" rel="self"/><title>Code Review - My issues</title></feed>
NewMapXml6, b:
 <feed lang="en-us" updated="2009-10-04T01:35:58+00:00" xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>rietveld<></name>
  </author>
  <entry>
    <author>
      <name>email-address-removed</name>
    </author>
    <id>urn:md5:134d9179c41f806be79b3a5f7877d19a</id>
    <link href="http://codereview.appspot.com/126085" rel="alternate"/>
    <summary type="html">An attempt at adding pubsubhubbub support to Rietveld.
http://code.google.com/p/pubsubhubbub
http://code.google.com/p/rietveld/issues/detail?id=155
The server side of the protocol is trivial:
  1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all
     feeds that will be pubsubhubbubbed.
  2. every time one of those feeds changes, tell the hub
     with a simple POST request.
I have tested this by adding debug prints to a local hub
server and checking that the server got the right publish
requests.
I can&#39;t quite get the server to work, but I think the bug
is not in my code.  I think that the server expects to be
able to grab the feed and see the feed&#39;s actual URL in
the link rel=&quot;self&quot;, but the default value for that drops
the :port from the URL, and I cannot for the life of me
figure out how to get the Atom generator deep inside
django not to do that, or even where it is doing that,
or even what code is running to generate the Atom feed.
(I thought I knew but I added some assert False statements
and it kept running!)
Ignoring that particular problem, I would appreciate
feedback on the right way to get the two values at
the top of feeds.py marked NOTE(rsc).</summary>
    <title>rietveld: an attempt at pubsubhubbub</title>
    <updated>2009-10-04T01:35:58+00:00</updated>
  </entry>
  <entry>
    <author>
      <name>email-address-removed</name>
    </author>
    <id>urn:md5:0a2a4f19bb815101f0ba2904aed7c35a</id>
    <link href="http://codereview.appspot.com/124106" rel="alternate"/>
    <summary type="html">This fixes the buggy tab rendering that can be seen at
http://codereview.appspot.com/116075/diff/1/2
The fundamental problem was that the tab code was
not being told what column the text began in, so it
didn&#39;t know where to put the tab stops.  Another problem
was that some of the code assumed that string byte
offsets were the same as column offsets, which is only
true if there are no tabs.
In the process of fixing this, I cleaned up the arguments
to Fold and ExpandTabs and renamed them Break and
_ExpandTabs so that I could be sure that I found all the
call sites.  I also wanted to verify that ExpandTabs was
not being used from outside intra_region_diff.py.</summary>
    <title>rietveld: correct tab handling</title>
    <updated>2009-10-03T23:02:17+00:00</updated>
  </entry>
  <id>http://codereview.appspot.com/</id>
  <link href="http://codereview.appspot.com/" rel="alternate"/>
  <link href="http://codereview.appspot.com/rss/mine/rsc" rel="self"/>
  <title>Code Review - My issues</title>
</feed>
------------ xml3_test.go
========== TestOnlyAttributes
<memballoon model="virtio">
  <address bus="0x00" domain="0x0000" function="0x0" slot="0x05" type="pci"/>
  <empty/>
</memballoon>
========== TestOnlyAttributesSeq
<memballoon model="virtio">
  <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0"/>
  <empty/>
</memballoon>
========== TestDecodeSimpleValuesAsMap
xml: <item>
	<id>30102</id>
	<title>Mini Drone Inteligente - Branco</title>
	<price unit="BRL">149.90</price>
</item>
m  : map[item:map[id:map[#text:30102] price:map[#text:149.90 -unit:BRL] title:map[#text:Mini Drone Inteligente - Branco]]]
========== (default)
m  : map[item:map[id:30102 price:map[#text:149.90 -unit:BRL] title:Mini Drone Inteligente - Branco]]
----------------  xml_test.go ...
==================== TestNewMapXmlReader ...
NewMapXmlReader, raw: <root><this>is a test</this></root>
NewMapXmlReader, m  : map[root:map[this:is a test]]
NewMapXmlReader, raw: <root2><newtag>something more</newtag><list><item>1</item><item>2</item></list></root2>
NewMapXmlReader, m  : map[root2:map[list:map[item:[1 2]] newtag:something more]]
Xml_1, mv: map[boolean:true float:3.14159625 null:<nil> tag1:some data tag2:more data]
Xml_1, x : <doc><boolean>true</boolean><float>3.14159625</float><null/><tag1>some data</tag1><tag2>more data</tag2></doc>
Xml_2, mv: map[array:[string true 36.4]]
Xml_2, x : <doc><array>string</array><array>true</array><array>36.4</array></doc>
Xml_3, mv: map[array:[[string true 36.4] string2]]
Xml_3, x : <doc><array>string</array><array>true</array><array>36.4</array><array>string2</array></doc>
Xml_4, mv: map[array:map[innerkey:[[string true 36.4] string2]]]
Xml_4, x : <array><innerkey>string</innerkey><innerkey>true</innerkey><innerkey>36.4</innerkey><innerkey>string2</innerkey></array>
Xml_5, mv: map[array:[map[innerkey:[[string true 36.4] string2]] map[some:more]]]
Xml_5, x : <array><innerkey>string</innerkey><innerkey>true</innerkey><innerkey>36.4</innerkey><innerkey>string2</innerkey></array><array><some>more</some></array>
Xml_strings, mv: map[sometag:some data strings:[string1 string2]]
Xml_strings, x : <doc><sometag>some data</sometag><strings<strings>string1</strings><strings>string2</strings></doc>
XmlWriter, b  : <myRootTag><boolean>true</boolean><float>3.14159625</float><tag1>some data</tag1><tag2>more data</tag2></myRootTag>
----------------  xmlseq_test.go ...
NewMapXmlSeq, x:
 <doc> 
   <books>
      <book seq="1">
         <author>William T. Gaddis</author>
			<review>Gaddis is one of the most influential but little know authors in America.</review>
         <title>The Recognitions</title>
			<!-- here's the rest of the review -->
         <review>One of the great seminal American novels of the 20th century.</review>
         <review>Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow.</review>
      </book>
      <book seq="2">
         <author>Austin Tappan Wright</author>
         <title>Islandia</title>
         <review>An example of earlier 20th century American utopian fiction.</review>
      </book>
      <book>
         <author>John Hawkes</author>
         <title>The Beetle Leg</title>
			<!throw in a directive here>
         <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
      </book>
      <book> 
         <author>
				<?cat first_name last_name?>
            <first_name>T.E.</first_name>
            <last_name>Porter</last_name>
         </author>
         <title>King's Day</title>
         <review>A magical novella.</review>
      </book>
   </books>
</doc>
NewMapXmlSeq, s:
 doc : 
  books : 
    #seq : [int] 0
    book : [[]interface{}]
      
        #attr : 
          seq : 
            #seq : [int] 0
            #text : [string] 1
        #comment : 
          #seq : [int] 3
          #text : [string]  here's the rest of the review 
        #seq : [int] 0
        author : 
          #seq : [int] 0
          #text : [string] William T. Gaddis
        review : [[]interface{}]
          
            #seq : [int] 1
            #text : [string] Gaddis is one of the most influential but little know authors in America.
          
            #seq : [int] 4
            #text : [string] One of the great seminal American novels of the 20th century.
          
            #seq : [int] 5
            #text : [string] Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow.
        title : 
          #seq : [int] 2
          #text : [string] The Recognitions
      
        #attr : 
          seq : 
            #seq : [int] 0
            #text : [string] 2
        #seq : [int] 1
        author : 
          #seq : [int] 0
          #text : [string] Austin Tappan Wright
        review : 
          #seq : [int] 2
          #text : [string] An example of earlier 20th century American utopian fiction.
        title : 
          #seq : [int] 1
          #text : [string] Islandia
      
        #directive : 
          #seq : [int] 2
          #text : [string] throw in a directive here
        #seq : [int] 2
        author : 
          #seq : [int] 0
          #text : [string] John Hawkes
        review : 
          #seq : [int] 3
          #text : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana.
        title : 
          #seq : [int] 1
          #text : [string] The Beetle Leg
      
        #seq : [int] 3
        author : 
          #procinst : 
            #inst : [string] first_name last_name
            #seq : [int] 0
            #target : [string] cat
          #seq : [int] 0
          first_name : 
            #seq : [int] 1
            #text : [string] T.E.
          last_name : 
            #seq : [int] 2
            #text : [string] Porter
        review : 
          #seq : [int] 2
          #text : [string] A magical novella.
        title : 
          #seq : [int] 1
          #text : [string] King's Day
NewMapXmlSeq, msv.XmlIndent():
 <doc>
  <books>
    <book seq="1">
      <author>William T. Gaddis</author>
      <review>Gaddis is one of the most influential but little know authors in America.</review>
      <title>The Recognitions</title>
      <!-- here's the rest of the review -->
      <review>One of the great seminal American novels of the 20th century.</review>
      <review>Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow.</review>
    </book>
    <book seq="2">
      <author>Austin Tappan Wright</author>
      <title>Islandia</title>
      <review>An example of earlier 20th century American utopian fiction.</review>
    </book>
    <book>
      <author>John Hawkes</author>
      <title>The Beetle Leg</title>
      <!throw in a directive here>
      <review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
    </book>
    <book>
      <author>
        <?cat first_name last_name?>
        <first_name>T.E.</first_name>
        <last_name>Porter</last_name>
      </author>
      <title>King's Day</title>
      <review>A magical novella.</review>
    </book>
  </books>
</doc>
------------ TestXmlSeqDecodeError ...
err ok: element book not properly terminated, got books at #461
----------- TestXMPPStreamTag ...
<stream:stream
    from='example.com'
    xmlns="jabber:client"
    xmlns:stream="http://etherx.jabber.org/streams"
    version="1.0">
map[stream:map[-from:example.com -stream:http://etherx.jabber.org/streams -version:1.0 -xmlns:jabber:client]]
<stream:features>
  <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/>
  <sm xmlns="urn:xmpp:sm:3"/>
</stream:features>
map[features:map[bind:map[-xmlns:urn:ietf:params:xml:ns:xmpp-bind] sm:map[-xmlns:urn:xmpp:sm:3]]]
<stream:stream>
map[stream:map[]]
----------- TestXMPPStreamTagSeq ...
<stream:stream
    from='example.com'
    xmlns="jabber:client"
    xmlns:stream="http://etherx.jabber.org/streams"
    version="1.0">
map[stream:stream:map[#attr:map[from:map[#seq:0 #text:example.com] version:map[#seq:3 #text:1.0] xmlns:map[#seq:1 #text:jabber:client] xmlns:stream:map[#seq:2 #text:http://etherx.jabber.org/streams]]]]
<stream:features>
  <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/>
  <sm xmlns="urn:xmpp:sm:3"/>
</stream:features>
map[stream:features:map[bind:map[#attr:map[xmlns:map[#seq:0 #text:urn:ietf:params:xml:ns:xmpp-bind]] #seq:0] sm:map[#attr:map[xmlns:map[#seq:0 #text:urn:xmpp:sm:3]] #seq:1]]]
<stream:stream>
map[stream:stream:map[]]
PASS
ok  	github.com/clbanning/mxj	0.012s
github.com/clbanning/mxj/j2x
[{"some-null-value":"", "a-non-null-value":"bar"}]
xmloutput: <object><a-non-null-value>bar</a-non-null-value><some-null-value/></object>
{"somekey":[{"value":"1st"},{"value":"2nd"}]}
xmloutput: <somekey><value>1st</value></somekey><somekey><value>2nd</value></somekey>
PASS
ok  	github.com/clbanning/mxj/j2x	0.002s
github.com/clbanning/mxj/j2x
[{"some-null-value":"", "a-non-null-value":"bar"}]
xmloutput: <object><a-non-null-value>bar</a-non-null-value><some-null-value/></object>
{"somekey":[{"value":"1st"},{"value":"2nd"}]}
xmloutput: <somekey><value>1st</value></somekey><somekey><value>2nd</value></somekey>
PASS
ok  	github.com/clbanning/mxj/j2x	0.003s
github.com/clbanning/mxj/x2j
?   	github.com/clbanning/mxj/x2j	[no test files]
github.com/clbanning/mxj/x2j-wrapper
TestGoofy ... MapToDoc: map[byteVal:[116 104 101 32 97 105 100 32 111 102 32 116 104 101 105 114 32 99 111 117 110 116 114 121] goofyVal:0x400000c4c8 nilVal:<nil> xml:map[tag:map[-bool:true -one:1 -pi:3.1415962535] tagJR:map[-key:value]]]
v: {"byteVal":"dGhlIGFpZCBvZiB0aGVpciBjb3VudHJ5","goofyVal":{"S":"Now is the time for","Sp":"all good men to come to"},"nilVal":null,"xml":{"tag":{"-bool":"true","-one":"1","-pi":"3.1415962535"},"tagJR":{"-key":"value"}}}
TestGoofier ... MapToDoc: map[byteVal:[116 104 101 32 97 105 100 32 111 102 32 116 104 101 105 114 32 99 111 117 110 116 114 121] goofierVal:0x4000011080 goofyVal:0x400000c4c8 nilVal:<nil> xml:map[tag:map[-bool:true -one:1 -pi:3.1415962535] tagJR:map[-key:value]]]
v: {"byteVal":"dGhlIGFpZCBvZiB0aGVpciBjb3VudHJ5","goofierVal":{"G":{"S":"Now is the time for","Sp":"all good men to come to"},"B":"dGhlIHRyZWUgb2YgZnJlZWRvbSBtdXN0IHBlcmlvZGljYWxseSBiZQ==","N":null},"goofyVal":{"S":"Now is the time for","Sp":"all good men to come to"},"nilVal":null,"xml":{"tag":{"-bool":"true","-one":"1","-pi":"3.1415962535"},"tagJR":{"-key":"value"}}}
ToMap - Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
entry :
  vars :
    foo :[string] bar
    foo2 :
      hello :[string] world
ToJson - Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
json: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}}
ToJsonIndent - Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
json: {
  "entry": {
    "vars": {
      "foo": "bar",
      "foo2": {
        "hello": "world"
      }
    }
  }
}
BulkParser (with error) - Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry><this><is>an</err><entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
phandler m: map[entry:map[vars:map[foo:bar foo2:map[hello:world]]]]
ehandler err: xml.Decoder.Token() - XML syntax error on line 1: element <is> closed by </err>
phandler m: map[entry:map[vars:map[foo:bar foo2:map[hello:world]]]]
BulkParser (with error) - Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry><this><is>an</err><entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
phandlerj s: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}}
ehandler err: xml.Decoder.Token() - XML syntax error on line 1: element <is> closed by </err>
phandlerj s: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}}
================================ x2j_test.go ...
=================== TestX2j ...
XML doc:
 <msg mtype="alert" mpriority="1">
	<text>help me!</text>
	<song title="A Long Time" author="Mayer Hawthorne">
		<verses>
			<verse name="verse 1" no="1">
				<line no="1">Henry was a renegade</line>
				<line no="2">Didn't like to play it safe</line>
				<line no="3">One component at a time</line>
				<line no="4">There's got to be a better way</line>
				<line no="5">Oh, people came from miles around</line>
				<line no="6">Searching for a steady job</line>
				<line no="7">Welcome to the Motor Town</line>
				<line no="8">Booming like an atom bomb</line>
			</verse>
			<verse name="verse 2" no="2">
				<line no="1">Oh, Henry was the end of the story</line>
				<line no="2">Then everything went wrong</line>
				<line no="3">And we'll return it to its former glory</line>
				<line no="4">But it just takes so long</line>
			</verse>
		</verses>
		<chorus>
			<line no="1">It's going to take a long time</line>
			<line no="2">It's going to take it, but we'll make it one day</line>
			<line no="3">It's going to take a long time</line>
			<line no="4">It's going to take it, but we'll make it one day</line>
		</chorus>
	</song>
</msg>
DocToMap(), recast==true:
 
msg :
  -mtype :[string] alert
  -mpriority :[float64] 1.00e+00
  text :[string] help me!
  song :
    chorus :
      line :[[]interface{}]
        [item: 0]        
          -no :[float64] 1.00e+00
          #text :[string] It's going to take a long time
        [item: 1]        
          -no :[float64] 2.00e+00
          #text :[string] It's going to take it, but we'll make it one day
        [item: 2]        
          -no :[float64] 3.00e+00
          #text :[string] It's going to take a long time
        [item: 3]        
          #text :[string] It's going to take it, but we'll make it one day
          -no :[float64] 4.00e+00
    -title :[string] A Long Time
    -author :[string] Mayer Hawthorne
    verses :
      verse :[[]interface{}]
        [item: 0]        
          -name :[string] verse 1
          -no :[float64] 1.00e+00
          line :[[]interface{}]
            [item: 0]            
              -no :[float64] 1.00e+00
              #text :[string] Henry was a renegade
            [item: 1]            
              -no :[float64] 2.00e+00
              #text :[string] Didn't like to play it safe
            [item: 2]            
              -no :[float64] 3.00e+00
              #text :[string] One component at a time
            [item: 3]            
              -no :[float64] 4.00e+00
              #text :[string] There's got to be a better way
            [item: 4]            
              -no :[float64] 5.00e+00
              #text :[string] Oh, people came from miles around
            [item: 5]            
              -no :[float64] 6.00e+00
              #text :[string] Searching for a steady job
            [item: 6]            
              -no :[float64] 7.00e+00
              #text :[string] Welcome to the Motor Town
            [item: 7]            
              -no :[float64] 8.00e+00
              #text :[string] Booming like an atom bomb
        [item: 1]        
          -name :[string] verse 2
          -no :[float64] 2.00e+00
          line :[[]interface{}]
            [item: 0]            
              -no :[float64] 1.00e+00
              #text :[string] Oh, Henry was the end of the story
            [item: 1]            
              -no :[float64] 2.00e+00
              #text :[string] Then everything went wrong
            [item: 2]            
              -no :[float64] 3.00e+00
              #text :[string] And we'll return it to its former glory
            [item: 3]            
              -no :[float64] 4.00e+00
              #text :[string] But it just takes so long
DocToJsonIndent, recast==true:
 {
  "msg": {
    "-mpriority": 1,
    "-mtype": "alert",
    "song": {
      "-author": "Mayer Hawthorne",
      "-title": "A Long Time",
      "chorus": {
        "line": [
          {
            "#text": "It's going to take a long time",
            "-no": 1
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": 2
          },
          {
            "#text": "It's going to take a long time",
            "-no": 3
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": 4
          }
        ]
      },
      "verses": {
        "verse": [
          {
            "-name": "verse 1",
            "-no": 1,
            "line": [
              {
                "#text": "Henry was a renegade",
                "-no": 1
              },
              {
                "#text": "Didn't like to play it safe",
                "-no": 2
              },
              {
                "#text": "One component at a time",
                "-no": 3
              },
              {
                "#text": "There's got to be a better way",
                "-no": 4
              },
              {
                "#text": "Oh, people came from miles around",
                "-no": 5
              },
              {
                "#text": "Searching for a steady job",
                "-no": 6
              },
              {
                "#text": "Welcome to the Motor Town",
                "-no": 7
              },
              {
                "#text": "Booming like an atom bomb",
                "-no": 8
              }
            ]
          },
          {
            "-name": "verse 2",
            "-no": 2,
            "line": [
              {
                "#text": "Oh, Henry was the end of the story",
                "-no": 1
              },
              {
                "#text": "Then everything went wrong",
                "-no": 2
              },
              {
                "#text": "And we'll return it to its former glory",
                "-no": 3
              },
              {
                "#text": "But it just takes so long",
                "-no": 4
              }
            ]
          }
        ]
      }
    },
    "text": "help me!"
  }
}
=================== TestGetValue ...
Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
Looking for value: entry.vars
{
  "foo": "bar",
  "foo2": {
    "hello": "world"
  }
}
Looking for value: entry.vars.foo2.hello
world
Looking with error in path: entry.var
verr: no key in map: var
DocValue() for tag path entry.vars
{
  "foo": "bar",
  "foo2": {
    "hello": "world"
  }
}
=================== TestGetValueWithAttr ...
Read doc: <entry><vars>
		<foo item="1">bar</foo>
		<foo item="2">
			<hello item="3">world</hello>
			<hello item="4">universe</hello>
		</foo></vars></entry>
Looking for value: entry.vars
{
  "foo": [
    {
      "#text": "bar",
      "-item": "1"
    },
    {
      "-item": "2",
      "hello": [
        {
          "#text": "world",
          "-item": "3"
        },
        {
          "#text": "universe",
          "-item": "4"
        }
      ]
    }
  ]
}
MapValue(): Looking for value: entry.vars.foo item=2
{
  "-item": "2",
  "hello": [
    {
      "#text": "world",
      "-item": "3"
    },
    {
      "#text": "universe",
      "-item": "4"
    }
  ]
}
MapValue(): Looking for hello item:4
verr: no key in map: hello
DocValue(): Looking for entry.vars.foo.hello item:4
verr: no keys beyond: foo
DocValue(): Looking for empty nil
{
  "entry": {
    "vars": {
      "foo": [
        {
          "#text": "bar",
          "-item": "1"
        },
        {
          "-item": "2",
          "hello": [
            {
              "#text": "world",
              "-item": "3"
            },
            {
              "#text": "universe",
              "-item": "4"
            }
          ]
        }
      ]
    }
  }
}
testing recast switch...
MapValue(): Looking for value: entry.vars.foo item=2
{
  "-item": 2,
  "hello": [
    {
      "#text": "world",
      "-item": 3
    },
    {
      "#text": "universe",
      "-item": 4
    }
  ]
}
=================== TestStuff_1 ...
<doc>
				<tag item="1">val2</tag>
				<tag item="2">val2</tag>
				<tag item="2" instance="2">val3</tag>
			</doc>
doc :
  tag :[[]interface{}]
    [item: 0]    
      -item :[string] 1
      #text :[string] val2
    [item: 1]    
      #text :[string] val2
      -item :[string] 2
    [item: 2]    
      -item :[string] 2
      -instance :[string] 2
      #text :[string] val3
DocValue(): tag
[
  {
    "#text": "val2",
    "-item": "1"
  },
  {
    "#text": "val2",
    "-item": "2"
  },
  {
    "#text": "val3",
    "-instance": "2",
    "-item": "2"
  }
]
DocValue(): item:2 instance:2
"val3"
=================== TestStuff_2 ...
<tag item="1">val2</tag>
<tag item="2">val2</tag>
<tag item="2" instance="2">val3</tag>
tag :
  -item :[string] 1
  #text :[string] val2
DocValue(): tag
{
  "#text": "val2",
  "-item": "1"
}
DocValue(): item:2 instance:2
verr: no attribute with name: instance
=================== TestBulkBuffer ...
Bulk Message Processing Tests
procMap: {
  "msg": {
    "-mpriority": "1",
    "-mtype": "alert",
    "song": {
      "-author": "Mayer Hawthorne",
      "-title": "A Long Time",
      "chorus": {
        "line": [
          {
            "#text": "It's going to take a long time",
            "-no": "1"
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": "2"
          },
          {
            "#text": "It's going to take a long time",
            "-no": "3"
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": "4"
          }
        ]
      },
      "verses": {
        "verse": [
          {
            "-name": "verse 1",
            "-no": "1",
            "line": [
              {
                "#text": "Henry was a renegade",
                "-no": "1"
              },
              {
                "#text": "Didn't like to play it safe",
                "-no": "2"
              },
              {
                "#text": "One component at a time",
                "-no": "3"
              },
              {
                "#text": "There's got to be a better way",
                "-no": "4"
              },
              {
                "#text": "Oh, people came from miles around",
                "-no": "5"
              },
              {
                "#text": "Searching for a steady job",
                "-no": "6"
              },
              {
                "#text": "Welcome to the Motor Town",
                "-no": "7"
              },
              {
                "#text": "Booming like an atom bomb",
                "-no": "8"
              }
            ]
          },
          {
            "-name": "verse 2",
            "-no": "2",
            "line": [
              {
                "#text": "Oh, Henry was the end of the story",
                "-no": "1"
              },
              {
                "#text": "Then everything went wrong",
                "-no": "2"
              },
              {
                "#text": "And we'll return it to its former glory",
                "-no": "3"
              },
              {
                "#text": "But it just takes so long",
                "-no": "4"
              }
            ]
          }
        ]
      }
    },
    "text": "help me!"
  }
}
procMap: {
  "msg": {
    "-mpriority": "1",
    "-mtype": "alert",
    "song": {
      "-author": "Mayer Hawthorne",
      "-title": "A Long Time",
      "verses": {
        "verse": {
          "-name": "verse 1",
          "-no": "1",
          "line": [
            {
              "#text": "Henry was a renegade",
              "-no": "1"
            },
            {
              "#text": "Didn't like to play it safe",
              "-no": "2"
            },
            {
              "#text": "One component at a time",
              "-no": "3"
            },
            {
              "#text": "There's got to be a better way",
              "-no": "4"
            },
            {
              "#text": "Oh, people came from miles around",
              "-no": "5"
            },
            {
              "#text": "Searching for a steady job",
              "-no": "6"
            },
            {
              "#text": "Welcome to the Motor Town",
              "-no": "7"
            },
            {
              "#text": "Booming like an atom bomb",
              "-no": "8"
            }
          ]
        }
      }
    },
    "text": "help me!"
  }
}
procMap: {
  "msg": {
    "-mpriority": "1",
    "-mtype": "alert",
    "song": {
      "-author": "Mayer Hawthorne",
      "-title": "A Long Time",
      "chorus": {
        "line": [
          {
            "#text": "It's going to take a long time",
            "-no": "1"
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": "2"
          },
          {
            "#text": "It's going to take a long time",
            "-no": "3"
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": "4"
          }
        ]
      }
    },
    "text": "help me!"
  }
}
procError err: xml.Decoder.Token() - XML syntax error on line 1: element <chorus> closed by </song>
procError err: xml.Decoder.Token() - XML syntax error on line 1: unexpected end element </msg>
=================== TestTagAndKey ...
TestTagAndKey()
 <doc>
		<sections>
			<section>one</section>
			<section>
				<parts>
					<part>two.one</part>
					<part>two.two</part>
				</parts>
			</section>
		</sections>
		<partitions>
			<parts>
				<sections>
					<section>one</section>
					<section>two</section>
				</sections>
			</parts>
		</partitions>	
	</doc>
tag: parts :: len: 2 v: [map[part:[two.one two.two]] map[sections:map[section:[one two]]]]
no 'not_a_tag' tag
key: section :: len: 2 v: [[one map[parts:map[part:[two.one two.two]]]] [one two]]
no 'not_a_key' key
============================ x2jat_test.go
=============== TestValuesAtKeyPath ...
ValuesAtKeyPath ... doc1#author
ss: [doc.books.book.author]
vv: [map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]
ValuesAtKeyPath ... doc1#first_name
ss: [doc.books.book.author.first_name]
vv: [William H. Gaddis Austin Tappan Wright John Hawkes map[first_name:T.E. last_name:Porter]]
GetKeyPaths...doc2#book
ss: [doc.books.author.book doc.books.author.books.book]
vv: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]]
vv: [map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]]]
vv,shortest_path: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]]
ValuesAtKeyPath ... msg1#pub
ss: [msg.pub]
vv: [map[pub:test text:This is a long cold winter]]
ValuesAtKeyPath ... msg2#pub
ss: [msgs.msg.pub]
vv: [map[pub:test text:This is a long cold winter] map[pub:test2 text:I hope we have a cool summer, though]]
=============== TestValuesAtTagPath ...
ValuesAtTagPath ... doc1#author
ss: [doc.books.book.author]
vv: [map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]
ValuesAtTagPath ... doc1#first_name
ss: [doc.books.book.author.first_name]
vv: [William H. Gaddis Austin Tappan Wright John Hawkes map[first_name:T.E. last_name:Porter]]
ValuesAtTagPath...doc2#book
ss: [doc.books.author.book doc.books.author.books.book]
vv: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]]
vv: [map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]]]
vv,shortest_path: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]]
================================ x2jfindPath_test.go
=============== TestPathsForKey ...
PathsForKey... doc01#author
ss: [doc.books.book.author]
PathsForKey... doc01#books
ss: [doc.books]
PathsForKey...doc02#book
ss: [doc.books.author.book doc.books.author.books.book]
PathForKeyShortest...doc02#book
s: doc.books.author.book
=============== TestPathsForTag ...
PathsForTag... doc01#author
ss: [doc.books.book.author]
PathsForTag... doc01#books
ss: [doc.books]
PathsForTag...doc02#book
ss: [doc.books.author.book doc.books.author.books.book]
PathForTagShortest...doc02#book
s: doc.books.author.book
TestValuesFromTagPath()
 
<doc>
	<books>
		<book seq="1">
			<author>William H. Gaddis</author>
			<title>The Recognitions</title>
			<review>One of the great seminal American novels of the 20th century.</review>
		</book>
		<book seq="2">
			<author>Austin Tappan Wright</author>
			<title>Islandia</title>
			<review>An example of earlier 20th century American utopian fiction.</review>
		</book>
		<book seq="3">
			<author>John Hawkes</author>
			<title>The Beetle Leg</title>
			<review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
		</book>
		<book seq="4">
			<author>
				<first_name>T.E.</first_name>
				<last_name>Porter</last_name>
			</author>
			<title>King's Day</title>
			<review>A magical novella.</review>
		</book>
	</books>
</doc>
map: 
doc :
  books :
    book :[[]interface{}]
      [item: 0]      
        -seq :[string] 1
        author :[string] William H. Gaddis
        title :[string] The Recognitions
        review :[string] One of the great seminal American novels of the 20th century.
      [item: 1]      
        -seq :[string] 2
        author :[string] Austin Tappan Wright
        title :[string] Islandia
        review :[string] An example of earlier 20th century American utopian fiction.
      [item: 2]      
        title :[string] The Beetle Leg
        review :[string] A lyrical novel about the construction of Ft. Peck Dam in Montana.
        -seq :[string] 3
        author :[string] John Hawkes
      [item: 3]      
        -seq :[string] 4
        author :
          first_name :[string] T.E.
          last_name :[string] Porter
        title :[string] King's Day
        review :[string] A magical novella.
path == doc.books: len(v): 1
0 : map[book:[map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]
path == doc.books.*: len(v): 4
0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
1 : map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
2 : map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
3 : map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
path == doc.books.book: len(v): 4
0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
1 : map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
2 : map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
3 : map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
doc == doc2 / path == doc.books.book: len(v): 1
0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
path == doc.books.book.*: len(v): 12
0 : One of the great seminal American novels of the 20th century.
1 : William H. Gaddis
2 : The Recognitions
3 : An example of earlier 20th century American utopian fiction.
4 : Austin Tappan Wright
5 : Islandia
6 : The Beetle Leg
7 : A lyrical novel about the construction of Ft. Peck Dam in Montana.
8 : John Hawkes
9 : map[first_name:T.E. last_name:Porter]
10 : King's Day
11 : A magical novella.
doc == doc2 / path == doc.books.book.*: len(v): 3
0 : William H. Gaddis
1 : The Recognitions
2 : One of the great seminal American novels of the 20th century.
path == doc.books.*.author: len(v): 4
0 : William H. Gaddis
1 : Austin Tappan Wright
2 : John Hawkes
3 : map[first_name:T.E. last_name:Porter]
path == doc.*.*.author: len(v): 4
0 : William H. Gaddis
1 : Austin Tappan Wright
2 : John Hawkes
3 : map[first_name:T.E. last_name:Porter]
path == doc.*.*.title: len(v): 4
0 : The Recognitions
1 : Islandia
2 : The Beetle Leg
3 : King's Day
path == doc.*.*.*: len(v): 12
0 : William H. Gaddis
1 : The Recognitions
2 : One of the great seminal American novels of the 20th century.
3 : Austin Tappan Wright
4 : Islandia
5 : An example of earlier 20th century American utopian fiction.
6 : John Hawkes
7 : The Beetle Leg
8 : A lyrical novel about the construction of Ft. Peck Dam in Montana.
9 : map[first_name:T.E. last_name:Porter]
10 : King's Day
11 : A magical novella.
path == doc.*.*.*.*: len(v): 2
0 : T.E.
1 : Porter
TestValuesFromTagPath2(), iteration: 0 
 
<?xml version="1.0" encoding="UTF-8"?>
<data>
    <netid>
        <disable>no</disable>
        <text1>default:text</text1>
        <word1>default:word</word1>
    </netid>
</data>
map: 
data :
  netid :
    word1 :[string] default:word
    disable :[string] no
    text1 :[string] default:text
path == data.*: len(v): 1
0 : map[disable:no text1:default:text word1:default:word]
	 disable : no
	 text1 : default:text
	 word1 : default:word
path == data.*.*: len(v): 3
0 : no
1 : default:text
2 : default:word
TestValuesFromTagPath2(), iteration: 1 
 
<?xml version="1.0" encoding="UTF-8"?>
<data>
    <idnet>
        <disable>yes</disable>
        <text1>default:text</text1>
        <word1>default:word</word1>
    </idnet>
</data>
map: 
data :
  idnet :
    disable :[string] yes
    text1 :[string] default:text
    word1 :[string] default:word
path == data.*: len(v): 1
0 : map[disable:yes text1:default:text word1:default:word]
	 disable : yes
	 text1 : default:text
	 word1 : default:word
path == data.*.*: len(v): 3
0 : yes
1 : default:text
2 : default:word
Unmarshal test ... *map[string]interface{}, *string
m: map[doc:map[name:Mayer Hawthorne song:map[title:A Long Time verse:map[-no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2]]]]]]
s: {"doc":{"name":"Mayer Hawthorne","song":{"title":"A Long Time","verse":{"-no":"1","line":[{"#text":"Henry was a renegade","-no":"1"},{"#text":"Didn't like to play it safe","-no":"2"}]}}}}
Unmarshal test ... struct: <info><name>clbanning</name><address>unknown</address></info>
myInfo: {XMLName:{Space: Local:info} Name:clbanning Address:unknown}
TestMapValue of doc.song.verse w/ len(attrs) == 0.
doc: <doc> <name>Mayer Hawthorne</name> <song> <title>A Long Time</title> <verse no="1"> <line no="1">Henry was a renegade</line> <line no="2">Didn't like to play it safe</line> </verse> </song> </doc>
result: map[-no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2]]]
PASS
ok  	github.com/clbanning/mxj/x2j-wrapper	0.006s
github.com/clbanning/mxj/x2j-wrapper
TestGoofy ... MapToDoc: map[byteVal:[116 104 101 32 97 105 100 32 111 102 32 116 104 101 105 114 32 99 111 117 110 116 114 121] goofyVal:0x40000b24b0 nilVal:<nil> xml:map[tag:map[-bool:true -one:1 -pi:3.1415962535] tagJR:map[-key:value]]]
v: {"byteVal":"dGhlIGFpZCBvZiB0aGVpciBjb3VudHJ5","goofyVal":{"S":"Now is the time for","Sp":"all good men to come to"},"nilVal":null,"xml":{"tag":{"-bool":"true","-one":"1","-pi":"3.1415962535"},"tagJR":{"-key":"value"}}}
TestGoofier ... MapToDoc: map[byteVal:[116 104 101 32 97 105 100 32 111 102 32 116 104 101 105 114 32 99 111 117 110 116 114 121] goofierVal:0x40000a3050 goofyVal:0x40000b24b0 nilVal:<nil> xml:map[tag:map[-bool:true -one:1 -pi:3.1415962535] tagJR:map[-key:value]]]
v: {"byteVal":"dGhlIGFpZCBvZiB0aGVpciBjb3VudHJ5","goofierVal":{"G":{"S":"Now is the time for","Sp":"all good men to come to"},"B":"dGhlIHRyZWUgb2YgZnJlZWRvbSBtdXN0IHBlcmlvZGljYWxseSBiZQ==","N":null},"goofyVal":{"S":"Now is the time for","Sp":"all good men to come to"},"nilVal":null,"xml":{"tag":{"-bool":"true","-one":"1","-pi":"3.1415962535"},"tagJR":{"-key":"value"}}}
ToMap - Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
entry :
  vars :
    foo :[string] bar
    foo2 :
      hello :[string] world
ToJson - Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
json: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}}
ToJsonIndent - Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
json: {
  "entry": {
    "vars": {
      "foo": "bar",
      "foo2": {
        "hello": "world"
      }
    }
  }
}
BulkParser (with error) - Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry><this><is>an</err><entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
phandler m: map[entry:map[vars:map[foo:bar foo2:map[hello:world]]]]
ehandler err: xml.Decoder.Token() - XML syntax error on line 1: element <is> closed by </err>
phandler m: map[entry:map[vars:map[foo:bar foo2:map[hello:world]]]]
BulkParser (with error) - Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry><this><is>an</err><entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
phandlerj s: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}}
ehandler err: xml.Decoder.Token() - XML syntax error on line 1: element <is> closed by </err>
phandlerj s: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}}
================================ x2j_test.go ...
=================== TestX2j ...
XML doc:
 <msg mtype="alert" mpriority="1">
	<text>help me!</text>
	<song title="A Long Time" author="Mayer Hawthorne">
		<verses>
			<verse name="verse 1" no="1">
				<line no="1">Henry was a renegade</line>
				<line no="2">Didn't like to play it safe</line>
				<line no="3">One component at a time</line>
				<line no="4">There's got to be a better way</line>
				<line no="5">Oh, people came from miles around</line>
				<line no="6">Searching for a steady job</line>
				<line no="7">Welcome to the Motor Town</line>
				<line no="8">Booming like an atom bomb</line>
			</verse>
			<verse name="verse 2" no="2">
				<line no="1">Oh, Henry was the end of the story</line>
				<line no="2">Then everything went wrong</line>
				<line no="3">And we'll return it to its former glory</line>
				<line no="4">But it just takes so long</line>
			</verse>
		</verses>
		<chorus>
			<line no="1">It's going to take a long time</line>
			<line no="2">It's going to take it, but we'll make it one day</line>
			<line no="3">It's going to take a long time</line>
			<line no="4">It's going to take it, but we'll make it one day</line>
		</chorus>
	</song>
</msg>
DocToMap(), recast==true:
 
msg :
  song :
    -title :[string] A Long Time
    -author :[string] Mayer Hawthorne
    verses :
      verse :[[]interface{}]
        [item: 0]        
          line :[[]interface{}]
            [item: 0]            
              -no :[float64] 1.00e+00
              #text :[string] Henry was a renegade
            [item: 1]            
              -no :[float64] 2.00e+00
              #text :[string] Didn't like to play it safe
            [item: 2]            
              -no :[float64] 3.00e+00
              #text :[string] One component at a time
            [item: 3]            
              -no :[float64] 4.00e+00
              #text :[string] There's got to be a better way
            [item: 4]            
              -no :[float64] 5.00e+00
              #text :[string] Oh, people came from miles around
            [item: 5]            
              #text :[string] Searching for a steady job
              -no :[float64] 6.00e+00
            [item: 6]            
              -no :[float64] 7.00e+00
              #text :[string] Welcome to the Motor Town
            [item: 7]            
              -no :[float64] 8.00e+00
              #text :[string] Booming like an atom bomb
          -name :[string] verse 1
          -no :[float64] 1.00e+00
        [item: 1]        
          -name :[string] verse 2
          -no :[float64] 2.00e+00
          line :[[]interface{}]
            [item: 0]            
              -no :[float64] 1.00e+00
              #text :[string] Oh, Henry was the end of the story
            [item: 1]            
              -no :[float64] 2.00e+00
              #text :[string] Then everything went wrong
            [item: 2]            
              -no :[float64] 3.00e+00
              #text :[string] And we'll return it to its former glory
            [item: 3]            
              -no :[float64] 4.00e+00
              #text :[string] But it just takes so long
    chorus :
      line :[[]interface{}]
        [item: 0]        
          -no :[float64] 1.00e+00
          #text :[string] It's going to take a long time
        [item: 1]        
          -no :[float64] 2.00e+00
          #text :[string] It's going to take it, but we'll make it one day
        [item: 2]        
          -no :[float64] 3.00e+00
          #text :[string] It's going to take a long time
        [item: 3]        
          -no :[float64] 4.00e+00
          #text :[string] It's going to take it, but we'll make it one day
  -mtype :[string] alert
  -mpriority :[float64] 1.00e+00
  text :[string] help me!
DocToJsonIndent, recast==true:
 {
  "msg": {
    "-mpriority": 1,
    "-mtype": "alert",
    "song": {
      "-author": "Mayer Hawthorne",
      "-title": "A Long Time",
      "chorus": {
        "line": [
          {
            "#text": "It's going to take a long time",
            "-no": 1
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": 2
          },
          {
            "#text": "It's going to take a long time",
            "-no": 3
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": 4
          }
        ]
      },
      "verses": {
        "verse": [
          {
            "-name": "verse 1",
            "-no": 1,
            "line": [
              {
                "#text": "Henry was a renegade",
                "-no": 1
              },
              {
                "#text": "Didn't like to play it safe",
                "-no": 2
              },
              {
                "#text": "One component at a time",
                "-no": 3
              },
              {
                "#text": "There's got to be a better way",
                "-no": 4
              },
              {
                "#text": "Oh, people came from miles around",
                "-no": 5
              },
              {
                "#text": "Searching for a steady job",
                "-no": 6
              },
              {
                "#text": "Welcome to the Motor Town",
                "-no": 7
              },
              {
                "#text": "Booming like an atom bomb",
                "-no": 8
              }
            ]
          },
          {
            "-name": "verse 2",
            "-no": 2,
            "line": [
              {
                "#text": "Oh, Henry was the end of the story",
                "-no": 1
              },
              {
                "#text": "Then everything went wrong",
                "-no": 2
              },
              {
                "#text": "And we'll return it to its former glory",
                "-no": 3
              },
              {
                "#text": "But it just takes so long",
                "-no": 4
              }
            ]
          }
        ]
      }
    },
    "text": "help me!"
  }
}
=================== TestGetValue ...
Read doc: <entry><vars><foo>bar</foo><foo2><hello>world</hello></foo2></vars></entry>
Looking for value: entry.vars
{
  "foo": "bar",
  "foo2": {
    "hello": "world"
  }
}
Looking for value: entry.vars.foo2.hello
world
Looking with error in path: entry.var
verr: no key in map: var
DocValue() for tag path entry.vars
{
  "foo": "bar",
  "foo2": {
    "hello": "world"
  }
}
=================== TestGetValueWithAttr ...
Read doc: <entry><vars>
		<foo item="1">bar</foo>
		<foo item="2">
			<hello item="3">world</hello>
			<hello item="4">universe</hello>
		</foo></vars></entry>
Looking for value: entry.vars
{
  "foo": [
    {
      "#text": "bar",
      "-item": "1"
    },
    {
      "-item": "2",
      "hello": [
        {
          "#text": "world",
          "-item": "3"
        },
        {
          "#text": "universe",
          "-item": "4"
        }
      ]
    }
  ]
}
MapValue(): Looking for value: entry.vars.foo item=2
{
  "-item": "2",
  "hello": [
    {
      "#text": "world",
      "-item": "3"
    },
    {
      "#text": "universe",
      "-item": "4"
    }
  ]
}
MapValue(): Looking for hello item:4
verr: no key in map: hello
DocValue(): Looking for entry.vars.foo.hello item:4
verr: no keys beyond: foo
DocValue(): Looking for empty nil
{
  "entry": {
    "vars": {
      "foo": [
        {
          "#text": "bar",
          "-item": "1"
        },
        {
          "-item": "2",
          "hello": [
            {
              "#text": "world",
              "-item": "3"
            },
            {
              "#text": "universe",
              "-item": "4"
            }
          ]
        }
      ]
    }
  }
}
testing recast switch...
MapValue(): Looking for value: entry.vars.foo item=2
{
  "-item": 2,
  "hello": [
    {
      "#text": "world",
      "-item": 3
    },
    {
      "#text": "universe",
      "-item": 4
    }
  ]
}
=================== TestStuff_1 ...
<doc>
				<tag item="1">val2</tag>
				<tag item="2">val2</tag>
				<tag item="2" instance="2">val3</tag>
			</doc>
doc :
  tag :[[]interface{}]
    [item: 0]    
      -item :[string] 1
      #text :[string] val2
    [item: 1]    
      -item :[string] 2
      #text :[string] val2
    [item: 2]    
      -instance :[string] 2
      #text :[string] val3
      -item :[string] 2
DocValue(): tag
[
  {
    "#text": "val2",
    "-item": "1"
  },
  {
    "#text": "val2",
    "-item": "2"
  },
  {
    "#text": "val3",
    "-instance": "2",
    "-item": "2"
  }
]
DocValue(): item:2 instance:2
"val3"
=================== TestStuff_2 ...
<tag item="1">val2</tag>
<tag item="2">val2</tag>
<tag item="2" instance="2">val3</tag>
tag :
  -item :[string] 1
  #text :[string] val2
DocValue(): tag
{
  "#text": "val2",
  "-item": "1"
}
DocValue(): item:2 instance:2
verr: no attribute key:value pair: item:2
=================== TestBulkBuffer ...
Bulk Message Processing Tests
procMap: {
  "msg": {
    "-mpriority": "1",
    "-mtype": "alert",
    "song": {
      "-author": "Mayer Hawthorne",
      "-title": "A Long Time",
      "chorus": {
        "line": [
          {
            "#text": "It's going to take a long time",
            "-no": "1"
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": "2"
          },
          {
            "#text": "It's going to take a long time",
            "-no": "3"
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": "4"
          }
        ]
      },
      "verses": {
        "verse": [
          {
            "-name": "verse 1",
            "-no": "1",
            "line": [
              {
                "#text": "Henry was a renegade",
                "-no": "1"
              },
              {
                "#text": "Didn't like to play it safe",
                "-no": "2"
              },
              {
                "#text": "One component at a time",
                "-no": "3"
              },
              {
                "#text": "There's got to be a better way",
                "-no": "4"
              },
              {
                "#text": "Oh, people came from miles around",
                "-no": "5"
              },
              {
                "#text": "Searching for a steady job",
                "-no": "6"
              },
              {
                "#text": "Welcome to the Motor Town",
                "-no": "7"
              },
              {
                "#text": "Booming like an atom bomb",
                "-no": "8"
              }
            ]
          },
          {
            "-name": "verse 2",
            "-no": "2",
            "line": [
              {
                "#text": "Oh, Henry was the end of the story",
                "-no": "1"
              },
              {
                "#text": "Then everything went wrong",
                "-no": "2"
              },
              {
                "#text": "And we'll return it to its former glory",
                "-no": "3"
              },
              {
                "#text": "But it just takes so long",
                "-no": "4"
              }
            ]
          }
        ]
      }
    },
    "text": "help me!"
  }
}
procMap: {
  "msg": {
    "-mpriority": "1",
    "-mtype": "alert",
    "song": {
      "-author": "Mayer Hawthorne",
      "-title": "A Long Time",
      "verses": {
        "verse": {
          "-name": "verse 1",
          "-no": "1",
          "line": [
            {
              "#text": "Henry was a renegade",
              "-no": "1"
            },
            {
              "#text": "Didn't like to play it safe",
              "-no": "2"
            },
            {
              "#text": "One component at a time",
              "-no": "3"
            },
            {
              "#text": "There's got to be a better way",
              "-no": "4"
            },
            {
              "#text": "Oh, people came from miles around",
              "-no": "5"
            },
            {
              "#text": "Searching for a steady job",
              "-no": "6"
            },
            {
              "#text": "Welcome to the Motor Town",
              "-no": "7"
            },
            {
              "#text": "Booming like an atom bomb",
              "-no": "8"
            }
          ]
        }
      }
    },
    "text": "help me!"
  }
}
procMap: {
  "msg": {
    "-mpriority": "1",
    "-mtype": "alert",
    "song": {
      "-author": "Mayer Hawthorne",
      "-title": "A Long Time",
      "chorus": {
        "line": [
          {
            "#text": "It's going to take a long time",
            "-no": "1"
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": "2"
          },
          {
            "#text": "It's going to take a long time",
            "-no": "3"
          },
          {
            "#text": "It's going to take it, but we'll make it one day",
            "-no": "4"
          }
        ]
      }
    },
    "text": "help me!"
  }
}
procError err: xml.Decoder.Token() - XML syntax error on line 1: element <chorus> closed by </song>
procError err: xml.Decoder.Token() - XML syntax error on line 1: unexpected end element </msg>
=================== TestTagAndKey ...
TestTagAndKey()
 <doc>
		<sections>
			<section>one</section>
			<section>
				<parts>
					<part>two.one</part>
					<part>two.two</part>
				</parts>
			</section>
		</sections>
		<partitions>
			<parts>
				<sections>
					<section>one</section>
					<section>two</section>
				</sections>
			</parts>
		</partitions>	
	</doc>
tag: parts :: len: 2 v: [map[part:[two.one two.two]] map[sections:map[section:[one two]]]]
no 'not_a_tag' tag
key: section :: len: 2 v: [[one map[parts:map[part:[two.one two.two]]]] [one two]]
no 'not_a_key' key
============================ x2jat_test.go
=============== TestValuesAtKeyPath ...
ValuesAtKeyPath ... doc1#author
ss: [doc.books.book.author]
vv: [map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]
ValuesAtKeyPath ... doc1#first_name
ss: [doc.books.book.author.first_name]
vv: [William H. Gaddis Austin Tappan Wright John Hawkes map[first_name:T.E. last_name:Porter]]
GetKeyPaths...doc2#book
ss: [doc.books.author.books.book doc.books.author.book]
vv: [map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]]]
vv: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]]
vv,shortest_path: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]]
ValuesAtKeyPath ... msg1#pub
ss: [msg.pub]
vv: [map[pub:test text:This is a long cold winter]]
ValuesAtKeyPath ... msg2#pub
ss: [msgs.msg.pub]
vv: [map[pub:test text:This is a long cold winter] map[pub:test2 text:I hope we have a cool summer, though]]
=============== TestValuesAtTagPath ...
ValuesAtTagPath ... doc1#author
ss: [doc.books.book.author]
vv: [map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]
ValuesAtTagPath ... doc1#first_name
ss: [doc.books.book.author.first_name]
vv: [William H. Gaddis Austin Tappan Wright John Hawkes map[first_name:T.E. last_name:Porter]]
ValuesAtTagPath...doc2#book
ss: [doc.books.author.book doc.books.author.books.book]
vv: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]]
vv: [map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]]]
vv,shortest_path: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]]
================================ x2jfindPath_test.go
=============== TestPathsForKey ...
PathsForKey... doc01#author
ss: [doc.books.book.author]
PathsForKey... doc01#books
ss: [doc.books]
PathsForKey...doc02#book
ss: [doc.books.author.book doc.books.author.books.book]
PathForKeyShortest...doc02#book
s: doc.books.author.book
=============== TestPathsForTag ...
PathsForTag... doc01#author
ss: [doc.books.book.author]
PathsForTag... doc01#books
ss: [doc.books]
PathsForTag...doc02#book
ss: [doc.books.author.book doc.books.author.books.book]
PathForTagShortest...doc02#book
s: doc.books.author.book
TestValuesFromTagPath()
 
<doc>
	<books>
		<book seq="1">
			<author>William H. Gaddis</author>
			<title>The Recognitions</title>
			<review>One of the great seminal American novels of the 20th century.</review>
		</book>
		<book seq="2">
			<author>Austin Tappan Wright</author>
			<title>Islandia</title>
			<review>An example of earlier 20th century American utopian fiction.</review>
		</book>
		<book seq="3">
			<author>John Hawkes</author>
			<title>The Beetle Leg</title>
			<review>A lyrical novel about the construction of Ft. Peck Dam in Montana.</review>
		</book>
		<book seq="4">
			<author>
				<first_name>T.E.</first_name>
				<last_name>Porter</last_name>
			</author>
			<title>King's Day</title>
			<review>A magical novella.</review>
		</book>
	</books>
</doc>
map: 
doc :
  books :
    book :[[]interface{}]
      [item: 0]      
        author :[string] William H. Gaddis
        title :[string] The Recognitions
        review :[string] One of the great seminal American novels of the 20th century.
        -seq :[string] 1
      [item: 1]      
        review :[string] An example of earlier 20th century American utopian fiction.
        -seq :[string] 2
        author :[string] Austin Tappan Wright
        title :[string] Islandia
      [item: 2]      
        -seq :[string] 3
        author :[string] John Hawkes
        title :[string] The Beetle Leg
        review :[string] A lyrical novel about the construction of Ft. Peck Dam in Montana.
      [item: 3]      
        title :[string] King's Day
        review :[string] A magical novella.
        -seq :[string] 4
        author :
          first_name :[string] T.E.
          last_name :[string] Porter
path == doc.books: len(v): 1
0 : map[book:[map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]
path == doc.books.*: len(v): 4
0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
1 : map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
2 : map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
3 : map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
path == doc.books.book: len(v): 4
0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
1 : map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia]
2 : map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg]
3 : map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]
doc == doc2 / path == doc.books.book: len(v): 1
0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions]
path == doc.books.book.*: len(v): 12
0 : William H. Gaddis
1 : The Recognitions
2 : One of the great seminal American novels of the 20th century.
3 : Austin Tappan Wright
4 : Islandia
5 : An example of earlier 20th century American utopian fiction.
6 : A lyrical novel about the construction of Ft. Peck Dam in Montana.
7 : John Hawkes
8 : The Beetle Leg
9 : A magical novella.
10 : map[first_name:T.E. last_name:Porter]
11 : King's Day
doc == doc2 / path == doc.books.book.*: len(v): 3
0 : William H. Gaddis
1 : The Recognitions
2 : One of the great seminal American novels of the 20th century.
path == doc.books.*.author: len(v): 4
0 : William H. Gaddis
1 : Austin Tappan Wright
2 : John Hawkes
3 : map[first_name:T.E. last_name:Porter]
path == doc.*.*.author: len(v): 4
0 : William H. Gaddis
1 : Austin Tappan Wright
2 : John Hawkes
3 : map[first_name:T.E. last_name:Porter]
path == doc.*.*.title: len(v): 4
0 : The Recognitions
1 : Islandia
2 : The Beetle Leg
3 : King's Day
path == doc.*.*.*: len(v): 12
0 : William H. Gaddis
1 : The Recognitions
2 : One of the great seminal American novels of the 20th century.
3 : Austin Tappan Wright
4 : Islandia
5 : An example of earlier 20th century American utopian fiction.
6 : John Hawkes
7 : The Beetle Leg
8 : A lyrical novel about the construction of Ft. Peck Dam in Montana.
9 : map[first_name:T.E. last_name:Porter]
10 : King's Day
11 : A magical novella.
path == doc.*.*.*.*: len(v): 2
0 : T.E.
1 : Porter
TestValuesFromTagPath2(), iteration: 0 
 
<?xml version="1.0" encoding="UTF-8"?>
<data>
    <netid>
        <disable>no</disable>
        <text1>default:text</text1>
        <word1>default:word</word1>
    </netid>
</data>
map: 
data :
  netid :
    disable :[string] no
    text1 :[string] default:text
    word1 :[string] default:word
path == data.*: len(v): 1
0 : map[disable:no text1:default:text word1:default:word]
	 disable : no
	 text1 : default:text
	 word1 : default:word
path == data.*.*: len(v): 3
0 : no
1 : default:text
2 : default:word
TestValuesFromTagPath2(), iteration: 1 
 
<?xml version="1.0" encoding="UTF-8"?>
<data>
    <idnet>
        <disable>yes</disable>
        <text1>default:text</text1>
        <word1>default:word</word1>
    </idnet>
</data>
map: 
data :
  idnet :
    disable :[string] yes
    text1 :[string] default:text
    word1 :[string] default:word
path == data.*: len(v): 1
0 : map[disable:yes text1:default:text word1:default:word]
	 disable : yes
	 text1 : default:text
	 word1 : default:word
path == data.*.*: len(v): 3
0 : yes
1 : default:text
2 : default:word
Unmarshal test ... *map[string]interface{}, *string
m: map[doc:map[name:Mayer Hawthorne song:map[title:A Long Time verse:map[-no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2]]]]]]
s: {"doc":{"name":"Mayer Hawthorne","song":{"title":"A Long Time","verse":{"-no":"1","line":[{"#text":"Henry was a renegade","-no":"1"},{"#text":"Didn't like to play it safe","-no":"2"}]}}}}
Unmarshal test ... struct: <info><name>clbanning</name><address>unknown</address></info>
myInfo: {XMLName:{Space: Local:info} Name:clbanning Address:unknown}
TestMapValue of doc.song.verse w/ len(attrs) == 0.
doc: <doc> <name>Mayer Hawthorne</name> <song> <title>A Long Time</title> <verse no="1"> <line no="1">Henry was a renegade</line> <line no="2">Didn't like to play it safe</line> </verse> </song> </doc>
result: map[-no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2]]]
PASS
ok  	github.com/clbanning/mxj/x2j-wrapper	0.006s
Processing files: golang-github-clbanning-mxj-devel-2.5.5-4.fc38.noarch
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.HBncNA
+ RPM_EC=0
++ jobs -p
+ exit 0
+ umask 022
+ cd /builddir/build/BUILD
+ cd mxj-2.5.5
+ DOCDIR=/builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64/usr/share/doc/golang-github-clbanning-mxj-devel
+ export LC_ALL=C
+ LC_ALL=C
+ export DOCDIR
+ /usr/bin/mkdir -p /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64/usr/share/doc/golang-github-clbanning-mxj-devel
+ cp -pr examples /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64/usr/share/doc/golang-github-clbanning-mxj-devel
+ cp -pr readme.md /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64/usr/share/doc/golang-github-clbanning-mxj-devel
+ cp -pr x2j-wrapper/README /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64/usr/share/doc/golang-github-clbanning-mxj-devel
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.yj50sA
+ umask 022
+ cd /builddir/build/BUILD
+ cd mxj-2.5.5
+ LICENSEDIR=/builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64/usr/share/licenses/golang-github-clbanning-mxj-devel
+ export LC_ALL=C
+ LC_ALL=C
+ export LICENSEDIR
+ /usr/bin/mkdir -p /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64/usr/share/licenses/golang-github-clbanning-mxj-devel
+ cp -pr LICENSE /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64/usr/share/licenses/golang-github-clbanning-mxj-devel
+ cp -pr x2j-wrapper/LICENSE /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64/usr/share/licenses/golang-github-clbanning-mxj-devel
+ RPM_EC=0
++ jobs -p
+ exit 0
warning: File listed twice: /usr/share/licenses/golang-github-clbanning-mxj-devel/LICENSE
grep: warning: stray \ before :
grep: warning: stray \ before :
grep: warning: stray \ before :
grep: warning: stray \ before :
grep: warning: stray \ before :
grep: warning: stray \ before :
grep: warning: stray \ before :
grep: warning: stray \ before :
Provides: golang(github.com/clbanning/mxj) = 2.5.5-4.fc38 golang(github.com/clbanning/mxj/j2x) = 2.5.5-4.fc38 golang(github.com/clbanning/mxj/x2j) = 2.5.5-4.fc38 golang(github.com/clbanning/mxj/x2j-wrapper) = 2.5.5-4.fc38 golang-github-clbanning-mxj-devel = 2.5.5-4.fc38 golang-ipath(github.com/clbanning/mxj) = 2.5.5-4.fc38
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: go-filesystem
Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64
Wrote: /builddir/build/RPMS/golang-github-clbanning-mxj-devel-2.5.5-4.fc38.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.XItpsW
+ umask 022
+ cd /builddir/build/BUILD
+ cd mxj-2.5.5
+ /usr/bin/rm -rf /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.aarch64
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.Psd42H
+ umask 022
+ cd /builddir/build/BUILD
+ rm -rf mxj-2.5.5 mxj-2.5.5.gemspec
+ RPM_EC=0
++ jobs -p
+ exit 0
RPM build warnings:
    File listed twice: /usr/share/licenses/golang-github-clbanning-mxj-devel/LICENSE
Child return code was: 0