This commit is contained in:
Kilian Hofmann 2025-01-24 06:31:09 +01:00
parent e6390b2c33
commit d4cdf8b286
3 changed files with 1106 additions and 3687 deletions

View File

@ -1,294 +1,7 @@
import { XMLParser, XMLBuilder, XMLValidator } from "fast-xml-parser";
const input = `
<PartInfo>
<Name>MD11_RECP_INHP_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_INHP_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86124 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86125 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_TRFC_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_TRFC_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86140 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86141 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_DATA_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_DATA_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86142 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86143 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_WPT_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_WPT_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86144 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86145 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_VORNDB_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_VORNDB_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86146 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86147 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_ARPT_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_ARPT_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86148 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86149 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_MAGTRU_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_MAGTRU_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86150 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86151 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_MAP_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_MAP_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86152 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86153 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_VOR_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_VOR_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86154 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86155 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_PLAN_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_PLAN_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86156 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86157 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_APPR_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_APPR_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86158 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86159 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_TCAS_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_TCAS_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86160 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86161 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_VOR1_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_VOR1_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86162 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86163 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_INCR_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_INCR_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86164 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86165 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_VOR2_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_VOR2_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86166 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86167 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_ADF1_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_ADF1_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86168 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86169 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_DECR_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_DECR_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86170 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86171 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_RECP_ADF2_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_RECP_ADF2_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 86172 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 86173 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
`;
function convert(element) {