On 24/01/2023 02:28, John Cowan wrote:
> On Sat, Jan 21, 2023 at 8:05 AM Peter Flynn < > wrote:
>
>> How does it deal with XML-->JSON for deep mixed content? I have TEI
>> documents with analytic markup, on which the publisher's rendering
>> and the user's linguistic or semantic analysis depends, nested up
>> to 10 levels deep. I am under pressure from some quarters to "make
>> the markup simpler" by using JSON.
>
> Sure, it's straightforward. Each XML element is a JSON array whose
> first element is the element name as a JSON string, whose second
> element is the attribute mapping as a JSON object, and whose
> remaining elements are the content as JSON strings or arrays. The
> attribute mapping can be omitted if it is empty.
>
> Thus:
>
> <foo/> => ["foo"]
>
> <foo bar="baz" zam="quux"/> => ["foo", {"bar":"baz", "zam":"quux"}]
>
> <foo>32 <dog/></foo> => ["foo", "32 ", "["dog"]]
>
> <foo bar="baz"><dog zam="quux"/> => ["foo", {"bar":"baz"}, ["dog"",
> {"zam":"quux"}]]
Thank you, that's very useful. Here's a line from a poem
<lg n="7" type="quatrain">
<l n="1">
<app>
<rdg wit="H">
<ps>
<fn>
<sic>Chór</sic>
</fn>
</ps>
mh'ainm ann</rdg>
<rdg wit="Eg">Mór m' ainm-si an</rdg>
</app>
gach baile buan.</l>
<l n="2">inghion <ps><fn>Aodha</fn></ps> fa geal gruad</l>
<l n="3"><ps><fn>Sithrioch</fn></ps> mo chéile ann
gach cath.</l>
<l n="4">Mac <ps><fn>Turgeis</fn></ps> na
t-tréan-chreach.</l>
</lg>
The root element type is TEI.2 and the xpointer to the <sic> element is
root.child(1,#element,'TEXT').child(1,#element,'BODY').child(1,#element,'DIV0').child(29,#element,'DIV1').child(6,#element,'LG').child(1,#element,'L').child(1,#element,'APP').child(1,#element,'RDG').child(1,#element,'PS').child(1,#element,'FN').child(1,#element,'SIC')
so the <sic> element is 15 deep in the tree.
What editors and rendering engines would be suitable to replace
oXygen/Emacs and XSLT?
Peter