🙆

CWRC XML Validator APIを試す

2024/05/16に公開

概要

TEI/XMLを対象としたエディタの一つとして、LEAF-WRITERがあります。

https://leaf-writer.leaf-vre.org/

以下のように説明されています。

The XML & RDF online editor of the Linked Editing Academic Framework

GitLabのリポジトリは以下です。

https://gitlab.com/calincs/cwrc/leaf-writer/leaf-writer

このツールの特徴の一つとして、以下が説明されています。

continuous XML validation

このvalidationには以下のAPIが使用されているようでした。

https://validator.services.cwrc.ca/

また、ライブラリは以下のようです。

https://www.npmjs.com/package/@cwrc/leafwriter-validator

今回は、上記のAPIを試してみます。

試す

以下のページが表示されます。

https://validator.services.cwrc.ca/

Try ItのPOSTで以下を試しています。

Schema URL: https://raw.githubusercontent.com/nakamura196/test2021/main/tei_excel.rng
Schema Type: RNG_XML
Document Content:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml"
	schematypens="http://purl.oclc.org/dsdl/schematron"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
   <teiHeader>
      <fileDesc>
         <titleStmt>
            <title>Title</title>
         </titleStmt>
         <publicationStmt>
            <p>Publication Information</p>
         </publicationStmt>
         <sourceDesc>
            <p>Information about the source</p>
         </sourceDesc>
      </fileDesc>
   </teiHeader>
   <text>
      <body>
         <p>
            I am <name>Satoru Nakamura</name>.
         </p>
      </body>
   </text>
</TEI>

上記は、http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rngをスキーマとする場合にはエラーが生じませんが、使用可能なタグを限定したhttps://raw.githubusercontent.com/nakamura196/test2021/main/tei_excel.rngではエラーが生じるはずです。

こちらも参考にしてください。

https://zenn.dev/nakamura196/articles/287e392da1e6ab

結果、以下のように、エラーが返却されました。nameタグの使用に誤りがあるという理由も返却されています。

<?xml version="1.0" encoding="UTF-8"?>
<validation-result>
  <status>fail</status>
  <warning>
    <line>22</line>
    <column>24</column>
    <message>element "name" not allowed anywhere; expected the element end-tag, text or element "choice", "date", "label", "lb", "note", "orig", "pb", "persName", "placeName", "reg", "ruby", "seg", "space" or "title"</message>
    <element>name</element>
    <path>/TEI/text[1]/body[1]/p[1]/name[1]</path>
  </warning>
</validation-result>

まとめ

TEI/XMLのバリデーション機能の導入にあたり、参考になりましたら幸いです。

Discussion