Libraryviewer XML

Post bugs related to the IDE here
Ramihyn_
Enthusiast
Enthusiast
Posts: 314
Joined: Fri Feb 24, 2006 9:40 am

Libraryviewer XML

Post by Ramihyn_ »

PB 5.42 LTS x86 and PB 5.42 LTS x64

This is the file test.xml:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<Entries>
 <Entry Title="Offene Zweierbeziehung" Type="Hoerspiel" DateTime="24.03.2016 19:05:00" Length="3300" RadioStation="WDR 3" Content="Giovanni findet die Selbstmordversuche seiner Frau übertrieben. Was ist so schlimm an wiederholten Seitensprüngen? Antonia will offensichtlich die Vorzüge einer offenen Zweierbeziehung nicht verstehen. Statt zu klammern könnte sie auch die positiven Seiten von Unabhängigkeit und Abwechslung schätzen lernen. Antonia lernt tatsächlich dazu, verweigert die üblichen Beratungsgespräche für die Geliebten ihres Mannes, verschafft sich zum neuen Selbstbewusstsein das richtige Outfit, eine eigene Wohnung und: einen Geliebten mit Superman-Qualitäten. Dunkle Selbstmordgedanken sind Vergangenheit. Nicht aber für Giovanni. War für ihn die offene Zweierbeziehung bislang die Lösung, droht er nun, da die Beziehung nach beiden Seiten geöffnet ist, seinerseits mit Selbstmord. &#xA;&#xA;Im Gegensatz zu den nordischen Ehedramen eines Ibsen oder Bergmann ist ein düsteres Ende hier nicht zu erwarten, denn der italienische Nobelpreisträger Dario Fo ist der festen Überzeugung, "dass im Gelächter, im Grotesken der Satire, der höchste Ausdruck des Zweifels liegt, die wichtigste Hilfe der Vernunft." " />
 <Entry Title="Vom Nachteil, geboren zu sein" AltTitle="De l'inconvénient d'être né (Literarische Vorlage)" Type="Hoerspiel" DateTime="24.03.2016 22:03:00" Length="4140" RadioStation="SWR 2" Content="In der griechischen Mythologie foltert König Midas den Satyr Silenos, um endlich in Erfahrung zu bringen, was für des Menschen Wohl das Beste sei. Die Antwort wurde u. a. von Aristoteles überliefert: »Das Allerbeste ist für dich gänzlich unerreichbar: nicht geboren zu sein, nicht zu sein, nichts zu sein.«&#xA;&#xA;E. M. Ciorans Aphorismenbuch »Vom Nachteil, geboren zu sein" nimmt direkten Bezug auf die »Weisheit des Silenos«: seine 1973 erschienenen »Miniessays« sind Wirklichkeitskritik, die sich jedoch eine letzte Instanz der Wahrheit, die Intimität des Einzelnen, offenhält. Einzig möglicher Ausdruck des Versuchs, dem »Rausch der Auswegslosigkeit« Gestalt zu geben, sind bei Cioran Musik und Poesie. Formulierbare "Wahrheit" beginnt für ihn in dem Augenblick, in dem sie sich selbst aufhebt. "Letzteres", schreibt Kai Grehn, "ist für mich der Anknüpfungspunkt für eine Hörspielarbeit nach Ciorans Buch »Vom Nachteil, geboren zu sein«. 101 Aphorismen dieses großstädtischen Einsiedlers werden 99 Schauspielern in den Mund gelegt. Die &#132;Spezies Mensch&#147; selbst ist es, die vom Nachteil spricht, geboren zu sein, wobei jeder einzelne Aphorismus von einem anderen Sprecher interpretiert wird, die &#132;Intimität des Einzelnen&#147; erfährt, um durch den nächsten Sprecher sogleich wieder aufgehoben zu werden usw. usf.&#xA;&#xA;Ciorans Denken war und bleibt ein Skandalon. Dem Werk dieses Außenseiters und aus Prinzip Gescheiterten eine Hörspielarbeit zu widmen, scheint mir Pflicht und Kür zugleich."  " />
 <Entry Title="Die schwarzen Vögel" AltTitle="Thomas (1. Teil)" Type="Hoerspiel" DateTime="24.03.2016 23:04:00" Length="3360" RadioStation="WDR Eins Live" Genre="Krimi" Part="1/2" Content="Eine junge Frau verschwindet spurlos. Zeugen sehen die attraktive Jenny zuletzt mit einem Mann im Streit vor einer Kneipe stehen. Offenbar will Thomas mehr von der Blondine als nur Rotweintrinken. Und das, obwohl der unscheinbare Pharmakologe verheiratet ist. Der Streit zwischen den beiden endet mit Handgreiflichkeiten und Jennys Verschwinden. Ein paar Tage später steht Kommissar Lambert vor Thomas Tür. Er glaubt an Mord - doch ohne Leiche fehlen ihm die Beweise dafür. Da erfährt Lambert von einem Experiment in Thomas' Labor, das Kannibalismus bei Ratten erforscht, um die Selbstvernichtung dieser possierlichen Tierchen zu fördern. Ausgehungerte Ratten können sich gegenseitig restlos auffressen, ohne die geringsten Spuren zu hinterlassen. Lambert hat einen schrecklichen Verdacht ... " />
 <Entry Title="GAD Technologies" Type="Hoerspiel" DateTime="25.03.2016 00:05:00" Length="3000" RadioStation="DLR" Genre="AudioArt" Flags="Ursendung, Originalhörspiel" Content="G.A.D. steht für "General Anxiety Disorder", Symptom im Zeitalter des extremen Technokapitalismus. "To gad" bedeutet auch: sich herumtreiben.&#xA;&#xA;'To ga'" bedeutet 'sich herumtreiben', 'umherziehen'. Gleichzeitig steht die Abkürzung G.A.D. für General Anxiety Disorder, 'generalisierte Angststörung'. Unstetigkeit und Angst sind typische Symptome der Verflüssigung im Zeitalter des extremen Technokapitalismus. Das zumindest behaupten die Künstlerin Marija Bozinovska Jones und der Komponist J. G. Biberkopf. Gemeinsam entwickeln sie eine Radioperformance, in der sich die Grenzen aller erdenklichen Klangwelten auflösen. Turbo Folk Samples fließen über Wohnzimmeraufnahmen von afroamerikanischem Gospel hin zu der sachlichen Stimme von Siri und dem Klingeln von Skypeanrufen. &#xA;&#xA;'GAD Technologies' gewann einen der beiden Produktionspreise beim Radio Lab 2016 von Deutschlandradio Kultur und CTM Festival Berlin. " />
</Entries>
Set a breakpoint after the LoadXML line and use the Library Viewer to look at it inside the debugger

Code: Select all

XML1 = LoadXML(#PB_Any, "test.xml", #PB_UTF8)
      
If (XML1 <> 0)
  XML1Status = XMLStatus(XML1)
Else
  XML1Status = 999
EndIf
it shows 3 ENTRY records instead of 4

https://www.dropbox.com/s/y3tkgkm793743 ... 1.jpg?dl=0

ps: its confusing that the "library tools" menu entry is refered to in the documentation, but doesnt appear in the "Tools" menu, but only in the debugger menu.

pps: test.xml on dropbox - https://www.dropbox.com/s/7508n59x62zy35p/test.xml?dl=0
User avatar
Demivec
Addict
Addict
Posts: 4281
Joined: Mon Jul 25, 2005 3:51 pm
Location: Utah, USA

Re: Libraryviewer XML

Post by Demivec »

Ramihyn_ wrote:it shows 3 ENTRY records instead of 4
It may do this if the file is in a different encoding than the one specified.

I tested your file with the example code found in the help file under the section on XML. The file was called 'xml.pb'. It showed all four entries.

I'm not sure why the results differed between your program and the help file's sample code.
Ramihyn_
Enthusiast
Enthusiast
Posts: 314
Joined: Fri Feb 24, 2006 9:40 am

Re: Libraryviewer XML

Post by Ramihyn_ »

Demivec wrote:
Ramihyn_ wrote:it shows 3 ENTRY records instead of 4
It may do this if the file is in a different encoding than the one specified.

I tested your file with the example code found in the help file under the section on XML. The file was called 'xml.pb'. It showed all four entries.

I'm not sure why the results differed between your program and the help file's sample code.
Thanks for your testing. Your comment helped me find a encoding bug in the C# code that creates the XML files.
I fixed that and its now creating the XML files in unicode encoding. That changes the encoding info from UTF-8 to UTF-16 inside the XML file and i assume you have to change the help file sample code to

Code: Select all

If LoadXML(#XML, FileName$, #PB_Unicode)
The problem is still the same though. The PB Library viewer shows 3 instead of 4 entries.

Code: Select all

<?xml version="1.0" encoding="utf-16"?>
<Entries>
 <Entry Title="Offene Zweierbeziehung" Type="Hoerspiel" DateTime="24.03.2016 19:05:00" Length="3300" RadioStation="WDR 3" Content="Giovanni findet die Selbstmordversuche seiner Frau übertrieben. Was ist so schlimm an wiederholten Seitensprüngen? Antonia will offensichtlich die Vorzüge einer offenen Zweierbeziehung nicht verstehen. Statt zu klammern könnte sie auch die positiven Seiten von Unabhängigkeit und Abwechslung schätzen lernen. Antonia lernt tatsächlich dazu, verweigert die üblichen Beratungsgespräche für die Geliebten ihres Mannes, verschafft sich zum neuen Selbstbewusstsein das richtige Outfit, eine eigene Wohnung und: einen Geliebten mit Superman-Qualitäten. Dunkle Selbstmordgedanken sind Vergangenheit. Nicht aber für Giovanni. War für ihn die offene Zweierbeziehung bislang die Lösung, droht er nun, da die Beziehung nach beiden Seiten geöffnet ist, seinerseits mit Selbstmord. &#xA;&#xA;Im Gegensatz zu den nordischen Ehedramen eines Ibsen oder Bergmann ist ein düsteres Ende hier nicht zu erwarten, denn der italienische Nobelpreisträger Dario Fo ist der festen Überzeugung, "dass im Gelächter, im Grotesken der Satire, der höchste Ausdruck des Zweifels liegt, die wichtigste Hilfe der Vernunft." " />
 <Entry Title="Vom Nachteil, geboren zu sein" AltTitle="De l'inconvénient d'être né (Literarische Vorlage)" Type="Hoerspiel" DateTime="24.03.2016 22:03:00" Length="4140" RadioStation="SWR 2" Content="In der griechischen Mythologie foltert König Midas den Satyr Silenos, um endlich in Erfahrung zu bringen, was für des Menschen Wohl das Beste sei. Die Antwort wurde u. a. von Aristoteles überliefert: »Das Allerbeste ist für dich gänzlich unerreichbar: nicht geboren zu sein, nicht zu sein, nichts zu sein.«&#xA;&#xA;E. M. Ciorans Aphorismenbuch »Vom Nachteil, geboren zu sein" nimmt direkten Bezug auf die »Weisheit des Silenos«: seine 1973 erschienenen »Miniessays« sind Wirklichkeitskritik, die sich jedoch eine letzte Instanz der Wahrheit, die Intimität des Einzelnen, offenhält. Einzig möglicher Ausdruck des Versuchs, dem »Rausch der Auswegslosigkeit« Gestalt zu geben, sind bei Cioran Musik und Poesie. Formulierbare "Wahrheit" beginnt für ihn in dem Augenblick, in dem sie sich selbst aufhebt. "Letzteres", schreibt Kai Grehn, "ist für mich der Anknüpfungspunkt für eine Hörspielarbeit nach Ciorans Buch »Vom Nachteil, geboren zu sein«. 101 Aphorismen dieses großstädtischen Einsiedlers werden 99 Schauspielern in den Mund gelegt. Die &#132;Spezies Mensch&#147; selbst ist es, die vom Nachteil spricht, geboren zu sein, wobei jeder einzelne Aphorismus von einem anderen Sprecher interpretiert wird, die &#132;Intimität des Einzelnen&#147; erfährt, um durch den nächsten Sprecher sogleich wieder aufgehoben zu werden usw. usf.&#xA;&#xA;Ciorans Denken war und bleibt ein Skandalon. Dem Werk dieses Außenseiters und aus Prinzip Gescheiterten eine Hörspielarbeit zu widmen, scheint mir Pflicht und Kür zugleich."  " />
 <Entry Title="Die schwarzen Vögel" AltTitle="Thomas (1. Teil)" Type="Hoerspiel" DateTime="24.03.2016 23:04:00" Length="3360" RadioStation="WDR Eins Live" Genre="Krimi" Part="1/2" Content="Eine junge Frau verschwindet spurlos. Zeugen sehen die attraktive Jenny zuletzt mit einem Mann im Streit vor einer Kneipe stehen. Offenbar will Thomas mehr von der Blondine als nur Rotweintrinken. Und das, obwohl der unscheinbare Pharmakologe verheiratet ist. Der Streit zwischen den beiden endet mit Handgreiflichkeiten und Jennys Verschwinden. Ein paar Tage später steht Kommissar Lambert vor Thomas Tür. Er glaubt an Mord - doch ohne Leiche fehlen ihm die Beweise dafür. Da erfährt Lambert von einem Experiment in Thomas' Labor, das Kannibalismus bei Ratten erforscht, um die Selbstvernichtung dieser possierlichen Tierchen zu fördern. Ausgehungerte Ratten können sich gegenseitig restlos auffressen, ohne die geringsten Spuren zu hinterlassen. Lambert hat einen schrecklichen Verdacht ... " />
 <Entry Title="GAD Technologies" Type="Hoerspiel" DateTime="25.03.2016 00:05:00" Length="3000" RadioStation="DLR" Genre="AudioArt" Flags="Ursendung, Originalhörspiel" Content="G.A.D. steht für "General Anxiety Disorder", Symptom im Zeitalter des extremen Technokapitalismus. "To gad" bedeutet auch: sich herumtreiben.&#xA;&#xA;'To ga'" bedeutet 'sich herumtreiben', 'umherziehen'. Gleichzeitig steht die Abkürzung G.A.D. für General Anxiety Disorder, 'generalisierte Angststörung'. Unstetigkeit und Angst sind typische Symptome der Verflüssigung im Zeitalter des extremen Technokapitalismus. Das zumindest behaupten die Künstlerin Marija Bozinovska Jones und der Komponist J. G. Biberkopf. Gemeinsam entwickeln sie eine Radioperformance, in der sich die Grenzen aller erdenklichen Klangwelten auflösen. Turbo Folk Samples fließen über Wohnzimmeraufnahmen von afroamerikanischem Gospel hin zu der sachlichen Stimme von Siri und dem Klingeln von Skypeanrufen. &#xA;&#xA;'GAD Technologies' gewann einen der beiden Produktionspreise beim Radio Lab 2016 von Deutschlandradio Kultur und CTM Festival Berlin. " />
</Entries>
The XML file is here: https://www.dropbox.com/s/7508n59x62zy35p/test.xml?dl=0
User avatar
Demivec
Addict
Addict
Posts: 4281
Joined: Mon Jul 25, 2005 3:51 pm
Location: Utah, USA

Re: Libraryviewer XML

Post by Demivec »

I can confirm that the Library Viewer does not always show all nodes (of normal type) in an XML file.

The nodes are accessible through the XML library commands and so they are indeed present but the last node does not always show in the Library Viewer. The Library Viewer does however report that the node is there in its node count.

I have simplified the above test to the following:

Code: Select all

ourXML$ = "<Entries>" +
          ~"<Entry Title=\"1\"/>" +
          ;if any of the following '&#xA;' are removed things display properly in the Library Viewer
          ~"<Entry Title=\"2\" Content=\"&#xA;Symptom&#xA;&#xA;\" />" +
          "</Entries>"


XML1 = ParseXML(#PB_Any, ourXML$)

CallDebugger ;stop here to check library viewer
If (XML1 <> 0)
  XML1Status = XMLStatus(XML1)
  Debug XMLError(xml1) ;should show success
Else
  XML1Status = 999
EndIf

;some sloppy display code to show simple outline of nodes and attributes ;)
*node = MainXMLNode(XML1)

name$ = GetXMLNodeName(*node)
Debug "Root node: " + name$
*childNode = ChildXMLNode(*node)

While *childNode <> 0
  name$ = GetXMLNodeName(*childNode)
  Debug name$
  
  If ExamineXMLAttributes(*childNode)
    Text$ = ""
    While NextXMLAttribute(*childNode)
      Debug "  " + XMLAttributeName(*childNode) + "=" + Chr(34) + XMLAttributeValue(*childNode) + Chr(34)
    Wend
  EndIf
  *childnode = NextXMLNode(*childnode)
Wend
The buggy behavior is closely tied to the contents of the last node. I tried many variations of lengthening and shortening it as well as removing or adding certain things and I couldn't discern any clear pattern of misbehavior (though it misbehaved often).
Ramihyn_
Enthusiast
Enthusiast
Posts: 314
Joined: Fri Feb 24, 2006 9:40 am

Re: Libraryviewer XML

Post by Ramihyn_ »

Thanks alot demivec for your work and a nice sunday and happy easter to you and all readers :)

I cant add much to the issue, it happens often, but i havent yet nailed down what causes it -> as demivec said.

ps: if it has 4 entries but the xml viewer just shows the first 3, the node count had been wrong for me too. the display is wrong but consistently so ;)
Post Reply