Imvertor / Imvertor-Maven

Mavenized version of Imvertor
http://www.imvertor.org
9 stars 12 forks source link

Reguliere expressie wordt ongewenst ge-escaped #435

Open ThiesMesdag opened 8 months ago

ThiesMesdag commented 8 months ago

Reguliere expressie in ANMES1 type in EA: ^[ -~ -ÿĀ-&#x0\113;Ė-īĮ-ōŐ-žˇ˘-˛˝―‘-’“-”€™Ω⅛-⅞←-↓♪]*$ Levert in MIM model:

        <mim:PrimitiefDatatype index="8998" id="datatypenalgemeen-primitiefdatatype-anmes1">
           <mim:supertypen>
              <mim:GeneralisatieDatatypen index="9014">
                 <mim:datumOpname><!-- FOUT: De waarde voor dit verplichte metagegeven is niet gespecificeerd in het model --></mim:datumOpname>
                 <mim:supertype>
                    <mim:Datatype index="9014">CharacterString</mim:Datatype>
                 </mim:supertype>
                 <mim-ext:kenmerken>
                    <mim-ext:Kenmerk naam="positie">100</mim-ext:Kenmerk>
                    <mim-ext:Kenmerk naam="type">GENERALISATIE</mim-ext:Kenmerk>
                 </mim-ext:kenmerken>
              </mim:GeneralisatieDatatypen>
           </mim:supertypen>
           <mim:naam>AN-MES1</mim:naam>
           <mim:definitie>
              <xhtml:body>
                 <xhtml:p>Een datatype om aan te geven dat alleen europese tekens gebruikt mogen worden, die in de MES-1 set zitten. </xhtml:p>
              </xhtml:body>
           </mim:definitie>
           <mim:datumOpname><!-- FOUT: De waarde voor dit verplichte metagegeven is niet gespecificeerd in het model --></mim:datumOpname>
           <mim:patroon>Alleen tekens van de MES-1 tekenset.</mim:patroon>
           <!--https://docs.geostandaarden.nl/mim/mim/#metagegeven-formeel-patroon-->
           <mim:formeelPatroon>"^[&amp;#x0020;-&amp;#x007E;&amp;#x00A0;-&amp;#x00FF;&amp;#x0100;-&amp;#x0\113;&amp;#x0116;-&amp;#x012B;&amp;#x012E;-&amp;#x014D;&amp;#x0150;-&amp;#x017E;&amp;#x02C7;&amp;#x02D8;-&amp;#x02DB;&amp;#x02DD;&amp;#x2015;&amp;#x2018;-&amp;#x2019;&amp;#x201C;-&amp;#x201D;&amp;#x20AC;&amp;#x2122;&amp;#x2126;&amp;#x215B;-&amp;#x215E;&amp;#x2190;-&amp;#x2193;&amp;#x266A;]*$"</mim:formeelPatroon>
           <mim-ext:kenmerken>
              <mim-ext:Kenmerk naam="version">1.0</mim-ext:Kenmerk>
           </mim-ext:kenmerken>
        </mim:PrimitiefDatatype>

De regulier expressie tussen quotes “…” zetten of tussen ^…$ geeft dezelfde fout.

ArjanLoeffen commented 8 months ago

Wat is dat voor een reguliere expressie? ANMES1?

ThiesMesdag commented 8 months ago

Deze regex hoort bij de BAG Zie: https://imbag.github.io/praktijkhandleiding/artikelen/welke-tekens-mogen-in-de-bag-worden-gebruikt?q=mes+1

Het veroorzaakt nu handwerk om het patroon in goede vorm toe te voegen.

ArjanLoeffen commented 8 months ago

De vorm ^[&#x0020;-&#x007E;&#x00A0;-&#x00FF;......&#x266A;]*$ is niet correct als input in het veld in EA. Je moet daar gewoon de betreffende karakters invoeren of naar de karakters refereren met hun unicode waarde. Bijvoorbeeld: ^à$ of ^\u00E0$ Voor je opgegeven regex wordt dat dan dus: ^[\u0020-\u007E\u00A0-\u00FF\u0100-\u0113\u0116-\u012B\u012E-\u014D\u0150-\u017E\u02C7\u02D8-\u02DB\u02DD\u2015\u2018-\u2019\u201C-\u201D\u20AC\u2122\u2126\u215B-\u215E\u2190-\u2193\u266A]*$

ThiesMesdag commented 8 months ago

Dit hebben we ook geprobeerd, maar het probleem is daarmee is dat het volgens de XML Schema definitie niet de juiste notatie wijze voor unicode characters in een XML Schema is. Zie bv. ook https://www.regular-expressions.info/xml.html . De \u notatie is exact wat wij in de API gebruiken, een JSON Schema (en yaml) volgen de ECMA script standaard waar dat ook de bedoeling is, maar bij XML Schema is dat dus niet zo.

Er is dus een verschil in de weergave patronen voor xsd's en voor andere (json) schema's. Ik verwacht dat de MIM-xml ook de json notatie wijze nodig heeft.

ArjanLoeffen commented 5 months ago

Hoe verder? Dit staat al een tijdje te sudderen.