Regular expression in Relax NG Compact syntax

ถ้าอยากกำหนดรูปแบบข้อมูลที่จะอนุญาตให้ใส่ใน XML ของเรา ลงไปใน schema language เพื่อที่จะได้ตรวจได้โดย XML validator ใน Relax NG นี่ เราไปยืม pattern จาก W3C XML Schema datatypes มาใช้ได้

โดยตัว pattern นี่ มันก็คือ regular expression น่ะแหละ

ใช้งี้:

xsd:string { pattern = "regular_expression_here" }

เช่น ถ้าเราเขียน:

# ยืม datatypes ของ W3C XML Schema มาใช้
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"

# กำหนดรูปแบบข้อมูลเอง
Percent.data = ( xsd:string{ pattern = "(100|[1-9]?[0-9])[%]" } )

Style = element font {
  attribute weight { Percent.data }, # เอามาใช้ตรงนี้
  attribute color { "green" | "greener" }, # ถ้าแค่นี้ ไม่ต้องใช้ pattern ก็ได้
  text
}

ตัวอิลิเมนต์ font ก็จะเอาไปใช้ได้ประมาณนี้:

<font color="greener" weight="80%">bact'</font> read more

Co-Occurrence Constraints in RELAX NG

วิธีกำหนดเงื่อนไข &ldquoปรากฏร่วม” ใน RELAX NG: ถ้าค่าของโหนดนี้ เป็นแบบนี้ ตัวข้อมูลที่เหลือจะต้องเป็นแบบนี้ … เช่น ในอิลิเมนต์ person ถ้าเกิดแอตทริบิวต์ type มีค่าเป็น “author” ตัวอิลิเมนต์ person จะต้องมีอิลิเมนต์ลูก ชื่อ dead ด้วยนะ; แต่ถ้าแอตทริบิวต์ type มีค่าเป็น “character” ตัวอิลิเมนต์ลูกที่ต้องมี ก็จะเปลี่ยนไป read more

Choosing an XML editor

Alastair Dunning posted this to the TEI list today :-

AHDS Literature, Languages and Linguistics has recently published a new
Information Paper on XML editors.

With a large number of XML editors now available, this Information Paper serves as an introduction to the different features XML editors can have and the extent to which these features are implemented. It also presents the result of an evaluation exercise where different user groups tried a number of the editors.

The article is based on a study by Thijs van den Broek, Benchmarking XML editors, undertaken in 2004. The evaluation includes results of the survey van den Broek undertook via the TEI website. read more