Re: [xml-dev] Convert one XML format to another a nd verify the conversion … how to “verify the c onversion”?

Michael Kay <[email protected]> Sat, 29 Jun 2024 23:28:54 +0100
Newsgroups gmane.text.xml.devel
Message-ID <[email protected]>
--Apple-Mail=_D5AFEA7C-E24E-4C17-AD02-12169F274BCE
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

"Verifying the conversion" means testing that your code is doing what it =
is supposed to do.

If you have a good specification then you can construct tests by testing =
that every statement in the specification is satisfied. But it's unusual =
to have a good specification, in which casse it's up to you to fill in =
the gaps. Ideally, the tests will be written by a different person, to =
ensure that the spec is being read and interpreted in the same way by =
two independent people.

Verifying that the output conforms to a particular schema is likely to =
be useful but is unlikely to be sufficient, since the schema knows =
nothing about the input.

I'm not sure that your "metadata" contributes anything useful to this =
exercise.

Michael Kay
Saxonica

> On 29 Jun 2024, at 16:59, Roger L Costello <[email protected]> wrote:
>=20
> Hi Folks,
>=20
> I am writing a program that converts an old XML format to a new XML =
format. In addition to doing the conversion, I also need to verify the =
conversion. I have two questions:
> =20
> 1.       What does it mean to =E2=80=9Cverify the conversion=E2=80=9D? =
Does XSD validation constitute verifying the conversion? My sense is no. =
My sense is that each action taken during the conversion must be =
verified. Do you agree with that?
> 2.       As I do the conversion, I simultaneously output (to a =
separate file) metadata for each conversion action. What metadata should =
I generate to enable the conversion to be verified?
> =20
> Allow me to explain =E2=80=A6
> =20
> My program converts this old format:
> =20
> <Airport_Name>Boston Logan Airport</Airport_Name>
> =20
> to this new format:
> =20
> <name>Boston Logan Airport</name>
> =20
> Old format:
> =20
> <Airport_Elevation>19</Airport_Elevation>
> =20
> New format:
> =20
> <elevation>19</elevation>
> =20
> Old:
> =20
> =
<Airport_Reference_Point_Latitude>N42214660</Airport_Reference_Point_Latit=
ude>
> =20
> New:
> =20
> <latitude>
>     <deg>42</deg>
>     <min>21</min>
>     <sec>46</sec>
>     <hSec>60</hSec>
>     <northSouth>North</northSouth>
> </latitude>
> =20
> Not only am I responsible for converting the old format to the new =
format, I am also required to verify the conversion.=20
> =20
> Truthfully, I am unclear what it means to =E2=80=9Cverify the =
conversion.=E2=80=9D There is an XML Schema for the new format. I could =
(and certainly will) validate the file that is generated by my program. =
Is XSD-validation verifying the conversion? My sense is no. I think that =
=E2=80=9Cverify the conversion=E2=80=9D means verify each action taken =
during the conversion. Do you agree with that?
> =20
> =E2=80=9C=E2=80=A6 verify each action taken during the conversion.=E2=80=
=9D Here=E2=80=99s my plan of attack: My program will output -- to =
another, different file -- metadata that describes the actions that were =
taken during the conversion.
> =20
> Once again, I am unclear. What metadata is needed to verify an action? =
The metadata will be machine processed, so I am thinking that the =
metadata had better contain predicates (expressions that evaluate to =
true or false) since they can be easily evaluated by a machine.
> =20
> Here=E2=80=99s the metadata that I am currently generating when I =
convert Airport_Name to name:
> =20
> <mapping>
>     <description>Map Airport_Name to name</description>
>     <legacy-elmt-name>Airport_Name</legacy-elmt-name>
>     <legacy-elmt-value>GENERAL EDWARD LAWRENCE LOGAN =
</legacy-elmt-value>
>     <new-elmt-name>name</new-elmt-name>
>     <new-elmt-value>GENERAL EDWARD LAWRENCE LOGAN</new-elmt-value>
>     <predicate>Airport_Name =3D name</predicate>
> </mapping>
> =20
> The value of <predicate> is a predicate expression (does the value of =
Airport_Name equal the value of name).
>=20
> Here=E2=80=99s the metadata that I generate when I convert =
Airport_Elevation to elevation:
>=20
> <mapping>
>     <description>Map Airport_Elevation to elevation</description>
>     <legacy-elmt-name>Airport_Elevation</legacy-elmt-name>
>     <legacy-elmt-value>19</legacy-elmt-value>
>     <new-elmt-name>elevation</new-elmt-name>
>     <new-elmt-value>19</new-elmt-value>
>     <predicate>Airport_Elevation =3D elevation</predicate>
> </mapping>
> =20
>=20
> Here=E2=80=99s the metadata that I generate when I convert =
Airport_Reference_Point_Latitude to latitude:
>=20
> <mapping>
>     <description>Map Airport_Reference_Point_Latitude to =
latitude</description>
>     =
<legacy-elmt-name>Airport_Reference_Point_Latitude</legacy-elmt-name>
>     <legacy-elmt-value>N42214660</legacy-elmt-value>
>     <new-elmt-name>latitude</new-elmt-name>
>     <new-elmt-value>
>         <latitude>
>             <deg>42</deg>
>             <min>21</min>
>             <sec>46</sec>
>             <hSec>60</hSec>
>             <northSouth>North</northSouth>
>         </latitude>
>     </new-elmt-value>
>     <predicate>
>        substring(Airport_Reference_Point_Latitude,2,2) =3D =
latitude/deg and
>        substring(Airport_Reference_Point_Latitude,4,2) =3D =
latitude/min and
>        substring(Airport_Reference_Point_Latitude,6,2) =3D =
latitude/sec and
>        substring(Airport_Reference_Point_Latitude,8,2) =3D =
latitude/hSec and
>        (
>          (substring(Airport_Reference_Point_Latitude,1,1) =3D 'N' and =
latitude/NorthSouth =3D 'North') or
>         (substring(Airport_Reference_Point_Latitude,1,1) =3D 'S' and =
latitude/NorthSouth =3D 'South') or
>         (empty(latitude/NorthSouth))
>       )
>     </predicate>
> </mapping>
> =20
>=20
> Is that the metadata I should generate to enable the conversion to be =
verified?
>=20
> /Roger
>=20


--Apple-Mail=_D5AFEA7C-E24E-4C17-AD02-12169F274BCE
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;">"Verifying the =
conversion" means testing that your code is doing what it is supposed to =
do.<div><br></div><div>If you have a good specification then you can =
construct tests by testing that every statement in the specification is =
satisfied. But it's unusual to have a good specification, in which casse =
it's up to you to fill in the gaps. Ideally, the tests will be written =
by a different person, to ensure that the spec is being read and =
interpreted in the same way by two independent =
people.</div><div><br></div><div>Verifying that the output conforms to a =
particular schema is likely to be useful but is unlikely to be =
sufficient, since the schema knows nothing about the =
input.</div><div><br></div><div>I'm not sure that your "metadata" =
contributes anything useful to this =
exercise.</div><div><br></div><div>Michael Kay</div><div>Saxonica<br =
id=3D"lineBreakAtBeginningOfMessage"><div><br><blockquote =
type=3D"cite"><div>On 29 Jun 2024, at 16:59, Roger L Costello =
&lt;[email protected]&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div><meta charset=3D"UTF-8"><div =
class=3D"WordSection1" style=3D"page: WordSection1; caret-color: rgb(0, =
0, 0); font-family: Helvetica; font-size: 13px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><p class=3D"MsoNormal" style=3D"margin: 0in 0in =
8pt; line-height: 15.4px; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">Hi =
Folks,<o:p></o:p></span></p><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-family: Calibri, sans-serif;">I am writing a program that =
converts an old XML format to a new XML format. In addition to doing the =
conversion, I also need to<span =
class=3D"Apple-converted-space">&nbsp;</span><b><i>verify the =
conversion</i></b>. I have two questions:<o:p></o:p></span></div><div =
style=3D"margin: 0in; line-height: normal; font-size: 11pt; font-family: =
Aptos, sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in 0in =
0in 0.5in; line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif; text-indent: -0.25in;"><span style=3D"font-family: Calibri, =
sans-serif;"><span>1.<span style=3D"font-style: normal; =
font-variant-caps: normal; font-weight: normal; font-stretch: normal; =
font-size: 7pt; line-height: normal; font-family: &quot;Times New =
Roman&quot;; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-variant-emoji: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: =
normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-family: Calibri, sans-serif;">What does it mean to =
=E2=80=9Cverify the conversion=E2=80=9D? Does XSD validation constitute =
verifying the conversion? My sense is no. My sense is that each<span =
class=3D"Apple-converted-space">&nbsp;</span><b><i>action</i></b><span =
class=3D"Apple-converted-space">&nbsp;</span>taken during the conversion =
must be verified. Do you agree with that?<o:p></o:p></span></div><div =
style=3D"margin: 0in 0in 0in 0.5in; line-height: normal; font-size: =
11pt; font-family: Aptos, sans-serif; text-indent: -0.25in;"><span =
style=3D"font-family: Calibri, sans-serif;"><span>2.<span =
style=3D"font-style: normal; font-variant-caps: normal; font-weight: =
normal; font-stretch: normal; font-size: 7pt; line-height: normal; =
font-family: &quot;Times New Roman&quot;; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-variant-emoji: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: =
normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-family: Calibri, sans-serif;">As I do the conversion, I =
simultaneously output (to a separate file) metadata for each conversion =
action. What metadata should I generate to enable the conversion to be =
verified?<o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-family: Calibri, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">Allow me =
to explain =E2=80=A6<o:p></o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">My =
program converts this old format:<o:p></o:p></span></div><div =
style=3D"margin: 0in; line-height: normal; font-size: 11pt; font-family: =
Aptos, sans-serif;"><span style=3D"font-size: 12pt; font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, sans-serif; =
background: white;"><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;Airport_Name&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: white;">Boston Logan =
Airport</span><span style=3D"font-family: &quot;Times New Roman&quot;, =
serif; color: rgb(0, 0, 150); background: =
white;">&lt;/Airport_Name&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">to this =
new format:<o:p></o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-size: 12pt; font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, sans-serif; =
background: white;"><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;name&gt;</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; background: white;">Boston Logan Airport</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/name&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">Old =
format:<o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-size: 12pt; font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, sans-serif; =
background: white;"><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;Airport_Elevation&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: white;">19</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/Airport_Elevation&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-size: 12pt; font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">New =
format:<o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-size: 12pt; font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, sans-serif; =
background: white;"><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;elevation&gt;</span><span style=3D"font-family: &quot;Times =
New Roman&quot;, serif; background: white;">19</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/elevation&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-size: 12pt; font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;">Old:<o:p></o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-size: 12pt; font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, sans-serif; =
background: white;"><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;Airport_Reference_Point_Latitude&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">N42214660</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/Airport_Reference_Point_Latitude&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-size: 12pt; font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;">New:<o:p></o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-size: 12pt; font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, sans-serif; =
background: white;"><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;latitude&gt;</span><span style=3D"font-family: &quot;Times =
New Roman&quot;, serif; background: white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;deg&gt;</span><span style=3D"font-family:=
 &quot;Times New Roman&quot;, serif; background: white;">42</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/deg&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;min&gt;</span><span style=3D"font-family:=
 &quot;Times New Roman&quot;, serif; background: white;">21</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/min&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;sec&gt;</span><span style=3D"font-family:=
 &quot;Times New Roman&quot;, serif; background: white;">46</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/sec&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;hSec&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">60</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/hSec&gt;</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; background: white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;northSouth&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">North</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/northSouth&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: white;"><br></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/latitude&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">Not only =
am I responsible for converting the old format to the new format, I am =
also required to<span =
class=3D"Apple-converted-space">&nbsp;</span><b><i>verify the =
conversion</i></b>.<span =
class=3D"Apple-converted-space">&nbsp;</span><o:p></o:p></span></div><div =
style=3D"margin: 0in; line-height: normal; font-size: 11pt; font-family: =
Aptos, sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;">Truthfully, I am unclear what it means to =E2=80=9Cverify =
the conversion.=E2=80=9D There is an XML Schema for the new format. I =
could (and certainly will) validate the file that is generated by my =
program. Is XSD-validation verifying the conversion? My sense is no. I =
think that =E2=80=9Cverify the conversion=E2=80=9D means verify =
each<span =
class=3D"Apple-converted-space">&nbsp;</span><b><i>action</i></b><span =
class=3D"Apple-converted-space">&nbsp;</span>taken during the =
conversion. Do you agree with that?<o:p></o:p></span></div><div =
style=3D"margin: 0in; line-height: normal; font-size: 11pt; font-family: =
Aptos, sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">=E2=80=9C=E2=
=80=A6 verify each<span =
class=3D"Apple-converted-space">&nbsp;</span><b><i>action</i></b><span =
class=3D"Apple-converted-space">&nbsp;</span>taken during the =
conversion.=E2=80=9D Here=E2=80=99s my plan of attack: My program will =
output -- to another, different file -- metadata that describes the =
actions that were taken during the =
conversion.<o:p></o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">Once =
again, I am unclear. What metadata is needed to verify an action? The =
metadata will be machine processed, so I am thinking that the metadata =
had better contain predicates (expressions that evaluate to true or =
false) since they can be easily evaluated by a =
machine.<o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-family: Calibri, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">Here=E2=80=99=
s the metadata that I am currently generating when I convert =
Airport_Name to name:<o:p></o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><div style=3D"margin: 0in; =
line-height: normal; font-size: 11pt; font-family: Aptos, sans-serif; =
background: white;"><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;mapping&gt;</span><span style=3D"font-family: &quot;Times =
New Roman&quot;, serif; background: white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;description&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">Map Airport_Name to name</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/description&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;legacy-elmt-name&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">Airport_Name</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/legacy-elmt-name&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;legacy-elmt-value&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">GENERAL EDWARD LAWRENCE LOGAN<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/legacy-elmt-value&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;new-elmt-name&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">name</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/new-elmt-name&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;new-elmt-value&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">GENERAL EDWARD LAWRENCE LOGAN</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/new-elmt-value&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;predicate&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">Airport_Name =3D name</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/predicate&gt;</span><span style=3D"font-family: &quot;Times =
New Roman&quot;, serif; background: white;"><br></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/mapping&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><o:p></o:p></span></div><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></div><p class=3D"MsoNormal" =
style=3D"margin: 0in 0in 8pt; line-height: 15.4px; font-size: 11pt; =
font-family: Aptos, sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;">The value of &lt;predicate&gt; is a predicate expression =
(does the value of Airport_Name equal the value of =
name).<o:p></o:p></span></p><p class=3D"MsoNormal" style=3D"margin: 0in =
0in 8pt; line-height: 15.4px; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-family: Calibri, sans-serif;">Here=E2=80=99=
s the metadata that I generate when I convert Airport_Elevation to =
elevation:<o:p></o:p></span></p><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif; background: =
white;"><span style=3D"font-family: &quot;Times New Roman&quot;, serif; =
color: rgb(0, 0, 150); background: white;">&lt;mapping&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;description&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">Map Airport_Elevation to elevation</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/description&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;legacy-elmt-name&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">Airport_Elevation</span><span style=3D"font-family: &quot;Times =
New Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/legacy-elmt-name&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;legacy-elmt-value&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">19</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/legacy-elmt-value&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;new-elmt-name&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">elevation</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/new-elmt-name&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;new-elmt-value&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">19</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/new-elmt-value&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;predicate&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">Airport_Elevation =3D elevation</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/predicate&gt;</span><span style=3D"font-family: &quot;Times =
New Roman&quot;, serif; background: white;"><br></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/mapping&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><o:p></o:p></span></div><p class=3D"MsoNormal" style=3D"margin: =
0in 0in 8pt; line-height: 15.4px; font-size: 11pt; font-family: Aptos, =
sans-serif;"><span style=3D"font-size: 12pt; line-height: 16.799999px; =
font-family: Arial, sans-serif;"><o:p>&nbsp;</o:p></span></p><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 8pt; line-height: 15.4px; =
font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-family: Calibri, sans-serif;">Here=E2=80=99s the metadata =
that I generate when I convert Airport_Reference_Point_Latitude to =
latitude:<o:p></o:p></span></p><div style=3D"margin: 0in; line-height: =
normal; font-size: 11pt; font-family: Aptos, sans-serif; background: =
white;"><span style=3D"font-family: &quot;Times New Roman&quot;, serif; =
color: rgb(0, 0, 150); background: white;">&lt;mapping&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;description&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">Map Airport_Reference_Point_Latitude to latitude</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/description&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;legacy-elmt-name&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">Airport_Reference_Point_Latitude</span><span style=3D"font-family:=
 &quot;Times New Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/legacy-elmt-name&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;legacy-elmt-value&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">N42214660</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/legacy-elmt-value&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;new-elmt-name&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">latitude</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/new-elmt-name&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;new-elmt-value&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;latitude&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;<span class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;deg&gt;</span><span style=3D"font-family:=
 &quot;Times New Roman&quot;, serif; background: white;">42</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/deg&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;<span class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;min&gt;</span><span style=3D"font-family:=
 &quot;Times New Roman&quot;, serif; background: white;">21</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/min&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;<span class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;sec&gt;</span><span style=3D"font-family:=
 &quot;Times New Roman&quot;, serif; background: white;">46</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/sec&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;<span class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;hSec&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">60</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/hSec&gt;</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;<span class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;northSouth&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">North</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/northSouth&gt;</span><span style=3D"font-family: =
&quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/latitude&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: white;">&lt;/new-elmt-value&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; color: rgb(0, =
0, 150); background: =
white;">&lt;predicate&gt;<o:p></o:p></span></div><div style=3D"margin: =
0in; line-height: normal; font-size: 11pt; font-family: Aptos, =
sans-serif; background: white;"><span style=3D"font-family: &quot;Times =
New Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;">substring(Airport_Reference_Point_Latitude,2,2) =3D latitude/deg =
and<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
substring(Airport_Reference_Point_Latitude,4,2) =3D latitude/min =
and<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
substring(Airport_Reference_Point_Latitude,6,2) =3D latitude/sec =
and<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
substring(Airport_Reference_Point_Latitude,8,2) =3D latitude/hSec =
and<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
(substring(Airport_Reference_Point_Latitude,1,1) =3D 'N' and =
latitude/NorthSouth =3D 'North') =
or<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
(substring(Airport_Reference_Point_Latitude,1,1) =3D 'S' and =
latitude/NorthSouth =3D 'South') or<br>&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(empty(latitude/NorthSouth))<br>&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; )</span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/predicate&gt;</span><span =
style=3D"font-family: &quot;Times New Roman&quot;, serif; background: =
white;"><br></span><span style=3D"font-family: &quot;Times New =
Roman&quot;, serif; color: rgb(0, 0, 150); background: =
white;">&lt;/mapping&gt;</span><span style=3D"font-family: &quot;Times =
New Roman&quot;, serif; background: white;"><o:p></o:p></span></div><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 8pt; line-height: 15.4px; =
font-size: 11pt; font-family: Aptos, sans-serif;"><span =
style=3D"font-size: 12pt; line-height: 16.799999px; font-family: Arial, =
sans-serif;"><o:p>&nbsp;</o:p></span></p><p class=3D"MsoNormal" =
style=3D"margin: 0in 0in 8pt; line-height: 15.4px; font-size: 11pt; =
font-family: Aptos, sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;">Is that the metadata I should generate to enable the =
conversion to be verified?<o:p></o:p></span></p><p class=3D"MsoNormal" =
style=3D"margin: 0in 0in 8pt; line-height: 15.4px; font-size: 11pt; =
font-family: Aptos, sans-serif;"><span style=3D"font-family: Calibri, =
sans-serif;">/Roger</span></p></div></div></blockquote></div><br></div></b=
ody></html>=

--Apple-Mail=_D5AFEA7C-E24E-4C17-AD02-12169F274BCE--