Overview# When editing TEI/XML files, changing the RNG file used for validation allows you to limit the tags and attributes available. This offers benefits such as preventing workers from being confused by tag choices and reducing inconsistencies in the created TEI/XML.
As a method for editing RNG files, using Roma is common, as introduced in the following article.
This is a top-down approach to limiting available tags and attributes, but this time we try creating an RNG file bottom-up from existing TEI/XML using generative AI.
Target Data# We target the following XML file published in the Koui Genji Monogatari Text DB.
https://kouigenjimonogatari.github.io/tei/01.xml
This file uses the following tei_all.rng.
http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng
As a result, many insertable tags are suggested, as shown below.
Creating an RNG File with Generative AI# Using a prompt like the following, an RNG file is created based on the tag usage in the target XML file.
# # - - # - # 1 2 3 4 # - - # 1 2 # # # . . . . # # . . C C B F E C u P r u P i R C x l E C B s u e i r l e * * * * o c e x u r t r a l o e q A C D I n l a p s i o p t d v u n r e n s u r e t e m o e i n i a e s c t d l c o f s a d a r l a i l r e y t m R e a n e m e y t g u a e u N n d e m z e n d i u d d R s G e : e e e n n e N a R n F n a f t n f D G g S N v i 0 t t n o c s e i e e c G i l 1 s h r o / c n l f h r e . e R m P e e i i g e s o x N e m o s v l u m c n m c G f e l s r e e i a h m l u f n i a e r d e e r s e t c r q a e C m n r c c s y y u b . r a t e h t * i l r e n e i * e r e n a l w t m v l e s g t i h a e s e d ) i m e X p m o i r M w a e e a n t e L i u c n t e t t i t t R d w f h o f s r e o i - y i q t r l a c i ( b u o k e o n e u e e * m m g . t s u r * i p g e t s s n l t . s e a i e h , f d c n m t e o a d a i X r e n l o p X l i n u , X e e d y r M m d e e a p Y L e i n t n o Y n t t d s F t i s e a i s w f u v r l / i y f a o e e a t f l f t h a i i n t c c d e o r a t i a a t i u e t c b c a n i h u u o l t o s t n l n e e e s y s * l d s i e * e ) s u t m f t s e o e e o n r n d f t t i e e m s l l p t e e r r m m o u e e v c n n e t t t d u s s r * w e a * o n r w d k i t a e h t f o t f u r i t i c b i c u e o t n n e c f s y u s i o n i n t a g s e l e c t i o n
As a result, the following RNG file was created.
< < < ? ! g / x - C C [ - - - r < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < g m - u r P a s / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / ! d / r l s e u L E C m t < s - e < d - e < d - e < d - e < d - e < d - e < d - e < d - e < d - e < d - e < d - e < d - e < d - e < d - e < d - e < d - e < d - e < < d - e < d - e < d - e < d a t a r i n l m a r t - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f e / e - f a / z / e - f e / e - f e / e - f e / e m v o t p m a e a r e a i l < < < < e f i l < < < e f i l < < < e f i l < < e f i l < < e f i l < < < e f i l < e f i l < e f i l < < e f i l < e f i l < < e f i l < < < e f i l < < < < < < < e f i l < < e f i l < e f i l < < e f i : E a e < z f i l < < e f i l < < < < e f i l < < < e f m e m e o i b a r t f r = R = n e a r r r l i = H = n e a / r r l i B n e r r r l i T n e e / e / o l i R n e e / e / l i P n e e / e / e / l i S n e e / l i E n e e / l i = I = n e a / r l i I n e a / o l i I n e a r o l i I n e a / a / e l i R n e a / a / a / a / a / a / e l i = T = n e a r l i B n e a o l i P n e a / r l i = T = n d l : r c / e i L n e a / e l i P n e a / a / a / e l i T n e a / a / t l i a r d s t l r > t = o = e m : e e e e n = e = e m : M - - a e e e n i e m e e e e n i e m l < e l < e n < o e n e e m l < < e l < e e n u e m l < e l < < e l < e e n o e m l < < < e e n n e m l < e e n = m = e m : A - a e e n m e m t < < a n < o e n n e m : e n < o e n m e m t < < a t < < a m e n e e m : D - a t < < a t < < a t < < a t < < a t < < a m e n = e = e m : e e n o e m : n < o e n a e m : P - a e e n = e = e o e d o h < < < < c r n i e m : L - - a m e n a e m : P - - a t < < a t < < a m e n e e m : T [ - - - a t < < a e e n r s R : e e e x x d n n > = o = e d f f f m e = a = e d e : f f m e b e f f f m e t e e t l e t l e r n m e s e e a / t l e t l m e b e e t l e a / t l e e / l m e u e e e / e / e / l m e c e e m / l m e = a = e d r : f m e a e t a d / t e r n m e d e d f e r n m e a e t a d t t a d t p m e g e d e : t a d / t t a d t t a d t t a d t t a d t p m e = x = e d f m e d e d e r n m e r e d a : f m e = x = c m o O o t r r r h o e n e d i : p m e g e d a : t a d t t a d / t p m e x e d e I : t a / d / t x m e > i N ] d s m m a s a = t = n n o e > = d = n n o t f e d e > l n n e > l n n m e e m e e O e e e > p n n m t < < a e e m e e e > l n n m e e m t < a e e m l < e e e > r n n m l < e l < e l < e e e > o n n m i m e e > = g = n n o e D d e > g n n r : a < d t O e e e > i n n o O e e e > g n n r : a t r : a t t e > i n n o f S d r : a < d t r : a t r : a t r : a t r : a t t e > = t = n n o e > y n n o O e e e > a n n o r T d e > = t = n u e c r i e e e e o O > e n n o n I U d t e > e n n o g I M d r : a t r : a < d t t e > t n n o x M D E L d r : L F a a < d t t e > o G 2 e t l l t = m = = a t c n n n n = e = a t c a i n o n n n i a t n n n n e a t e x m e x m r f O n o a t e t a d t x m e x m n i a t e x m e t d t x m e e e / l m n c a t e e t l e t l e t l m n d a t e x o i m n = e = a t c a e o n n e a t i d t p a r r f O n v a t c n r f O n e a t i d t r i d t r y n o a t c i p o i d t p a r i d t r i d t r i d t r i d t r y n = = a t c n n a t c r f O n g a t c a y o n n = = a m n u M c x f f f i r a t c e n s o y n a t c e n u o i d t r i d t p a r y n a t c t P i a i o i d i o : t p a r / n n 0 t f r n n a " e = E = m u a a a t = r = m u d l c c a a t o m a a a t m n t e n t e M r t n m n r : a t t e n t e t c m n t e n r a t t e n m l < < e e e t e m n m e e m e e m e e e t i m n e p < x e t = = m u f c a t m b o a a t i M r t i m u a M r t m b o a i b o a i / t n m u n e c b o a a t i b o a i b o a i b o a i b o a i / t = B = m u a t m u M r t r m u g p c a t = C = m e t m o e t c M B m u d e c / t B m u d s c b o a i b o a a t i / t S m u O v c n c b o n r d a a t i > t = S 2 o f u s s t h = = l = e n m m m m > = = e n m a e o u m m > g e n m m m > I e n t / n t / n o n M > s e n t i d t r / n t / n > a e n t / n t i t r / n t e e a / t l m n > e n t e x m e x m e x m n > n e n t d t e p e n > = R = e n m f i u m > G e n u c r a b o n M > d e n m m o n M > L e n u c b u c b > > e n m e c u u c r a b u c b u c b u c b u c b > > = o = e n m m > e n m o n M > a e n m r i u m > = o = e n s e r > / n n n e o r e n m b i d u > > o e n m b i t u u c b u c r a b > > e e n m s R i h k u u c k m o r a b > " c 4 e c = : y t " = e = = a e e e e = S = = a e t D d m e e r = a e e e n = a > t > t r a o i = a b o a i > t > t t = a > t b a i > t n m t < a e e e t D = a n t e n t e n t e t g = a > i l < < e t d t = e = = a e o n m e r = a t u t a > u r a o u = a e e r a o i = a t u t u t u t u D = a e s i m t u t a > u t u t u t u t u t u t u t u t u = d = = a e e = a e r a o p = a e a c m e = n = = t n e > a a a > r e = a e r c m u = a e o c m t u t u t u t a > u g = a e e T d e m t u a c t a > u 1 h o c t " a p t T = m = " m n = = = = e = " m n a e i e = = a " m = = = f " m n > n > e m r b " m n u c b > n > i " m n > n u b > n t e t d t x m n > e " m n t / n t / n t / n > " m n o e a / t l i > > = f = " m n r e e = o " m e m y m t e m r a " m n = e m r n " m e m y t e m y t e " m n f e e m y m t e m y t e m y t e m y t e m y t = y = " m n = " m n e m r h " m n p a e = = t = " a a t > m m m e a " m n e a a e n " m n u a r e e m y t e m y m t m " m n g A e s d e e m t t u y m t . e n t u h = e p E = e = T e t " " " = c = t e t s n n " " p f e " " " o t e a a > e e i r e a t u t u a o p e a a t t u a n r a t t e t s s e a > t > t > t D e e a n m t < a e e o = e = f e t s n " u s e e p e > e e l s e t " > e e k g e e p e e p e f z e t a i n e p e e p e e p e e p e e p e = = t e t " b e t > e e p e t h l n " = e = t t v a e e e > k l e t a t s n d p e t n t e n e p e e p e e s e t m N d e n e o : m p e 0 m l i r t " L : I = n = E = a t f t = t = e = a a c g t f e h i = t p s r i = m m = > l e = m e m y t m n u = m m e y t m n t i t r / n > c o = m n > n > n > e n = m a e t d t x m n = r = a = a m t s p u = n n e n > = > u = a g = > r = n n e > n n e > i o = a e t n n e n > n n e > n n e > n n e > n n e > = ( = e = a b o = a = > " = a l t t = n = e i a t = = = b = a k e t a b = a d e f t n n e > n n e n > n e = a e T g t t n n e e n > " a y v e t h i / " = t = I " t e a e = i = i " t r : D a i n i l " i u o m t " e e " i s " e e p e e b " e e p e e a b a i > t r u " e a a a s c " e l n r a t t e a = e = c " t a I a u r " a t = a " I r " t r " a " a t = a t = n n " t r s a a t = a a t = a t = a t = a t = = M = x " t o d " t " > " t e y a e = t = x o i i " " " " " t s a a r " " t a s e a a t = a t = a t g " t n ] b m o a a t e h n = a : e p t b / / = = " T i i c x = o = H t i e e t l c c e f t b u a l t = = r t p r = n n e > = I l p = = n e > = m n u b > i r s = m m m c o e = > t i t r / n l = n = s f i n I t r f s m a " m s m f s i a z p g m a " m a " i e z i e t m a " m m a " m a " m a " m a " = a = t t i d y b i p p i l t x = = t n l o l p s > l i m n t y > p i r r t m a " m a " m " s i t y e t m a x t t " m e a s : t r w > = = > E o H s t = n = e e o a B s i e o D i l l r t e i " " e y S e " a t = " n i u " " a = " e a t t u p c o " e e e r d n " b a i > t > = c = i a o a I i f a u e t a e u a a u o p o h r e t a e t a t " o o c t i e t I e e t n e t n e t n e t n = i = " e o y " o o " " o e u i t = M = C > a n b b e b o a t i b o y t e i e t p e t s e ( > e o P n e i e t t t a a e n F c a o / p a w = = I n e i " = = a i n i c o D d I e l e i c i S t t a s t s r m a " n f c b d d m " a = m e y t t e u b = = = i i c p n u b > = e = m c n g F o a c r = i n = r g c r n h n i a = i n = i n i > n n t h o = i D = = i o = i o = i o = i o = n = > x n " > d n / > n m s o C = o = o b > " " g " n r h e o " n h n o = i o = i t = M g n r l t x o = i e p t n = c o t u / : r w = = " > a m / = ( = d H > ( b : n e i n s e S c e o t l i u p S m p e e t d a o a l i a e d v " e p e i D r i " " " p n o " a t t u = = i s > i - n c e f " o y " f e e f > i e c p " o y " o y o e > a e n " o " " " o n " o n " o n " o n = = t > / y > > > e e n o = d = n l / / " > > k e m n > > m e c n " o s " o r " o " > i i t n " o r s i y " o r u t w r / y . = = > R d i > = N = e e n l > s n f c D t a D n m e t t S t t S s = i a m r t i s t = a a p = n e > o e c b a t p t g d > m e y t = S = l i n c > e G a f n U p a " a R c " " h n n U u n U n " n > x n > p l n N l n N u n N u n N = E = " C > " B n s > n = e = t e > > / e p > a e > n n i f n i p s > m n c e > c n n : U p d a o o e / = t = = o e l = o = r a o i E c g o " e m t e t S l h t a " t p " o t e m i c t e " t i " " a = n s e l u i u i D i e p e = e = e m g o G r c a > R a c I > c e " / > i " > R r > R > g r m > a r > e r > e l > e l > e = d = > o > o t t = l = e > r l t r s " > t a > n a t a e o r o > a n R a i K l - r l r " e = = o r e = t = " d t o n " D r > s t i s " t e o m t > m " w n e " a o a r " w e l > r m " c D " t t b o e n = n e > = c = " i m r p e c I I t e n e p / > c > I I l D I o u a l Z t x L g y L g x U g y U g = i = n d o e = = n w i y k t a > P i c R g t r r n r l / > I t n o l c k a e h i = = t " " = = > e g c / e m c " c > m " r t e t > h > " > t n t i > h " a e e a " e > h l l n s g " a = = t = > l i p p " G s I " t " f " r > " I " " i " n l n : o t " o a " o a " p a " p a = t = t y n n = = t i n e a a v s e " t I y o r a r w " t g u y o e x l t - / / S r m r o > s a " n " t > " " m " e W i S i b e / b f = n > s o e i c D r m " i e m a " > r " I > e / o > e > I / > r / a g i n e > w t > w t > p t > p t i a e t " t e e r r c g e " f > e m r e l e r 3 > e = i m r n a t c e > > u " o a d c t > S / " > / e > n o t o u n > i " " y c r " s " e e e a o " a t / p > F r > r s F > e > I r e d e r e i e i e i e i n i a " > h l t o e I > e r p e s s e i r " u p s g x p . l b > d p i " i t > > > n " r n m n t " l > t U " " > h > s f = n n > g i > " n m e c m " n r v r v r v r v g n r p / i b e r n r n o d s p d p s d n U G s l . n : e j i h n / o m t > k t S o > i a R > > e c " " y e b > M " a n C t a r o > I " - e - e - e - e e e > n r m o r n t e " r i e o a " o . " T e e e d o g r m e f i g > n t " t r t r I r " > t U l a > t t a g e f D > r I r I l I l I A r a e e e f e u e n > t t m n t > u o > F n d t o r . g e c i c " d > m " y g " " > a R i e n h i s n i e g z i n i n e n e n r < l t a n s m g c # a i a d a r r h - j i n g w / n t e i / a t > " e / > r I n i t o v m i p ( o g t g t f t f t e f / e h k t a p b e e z n n n s b c g t 8 i e o ' r w n t d i n > t " > t > g " f i f t n o a a o a z n h e h e t e t e a o a m e o e r o t g t a e / t " l n t n g w s t n f e > " e / o m e p n s g n g o e t g t g g g ) r : e p n n r " t n i t s k p ? M e s . / o o d f o > t > r a s s e e e n _ e e X e Y e d n b o e d / o e E t c o e ( o s > o m a s n w 1 f u o r ( " m g t : U o s e \ X r Y r r r t o t o s w i ( > _ l a r u : n e n t s s 3 . E r r m Y > a e / i R U n _ d " " c " c " h c d i n n c \ e r u a v e i / o n d r t / . 0 t d i m a Y t U / m L R o X { c c o o e u f y t p g u o d m g n n i q g / g t u r c o " h i n a t Y i U R . a < L a r X 4 m o i a m r { e e i a u e w a s g u o r > e t g t i Y o R L * g / < n X } o o r r t e r t o g z e r 4 n t t e i n 3 t / a g c m g i i o - n L \ e a / c X < r r d d e n e n e o r e } t x c r j i a a l l t p / T n e o n M s ( . : a i o / d d i i x t t x n i s < ) e t o e i d r t i e u a 2 E g d n M r j s d : m l f p i i n n t a h t i e c p / l e r d m \ i t d r t 0 I ) i - a e s u o d a u o a n n a a t e n ) o p e r r ) o . r a w e i 0 t D n q o r c o g m r r a a t t b i e < n a m n e n o T i t i / b 1 d i D d u n f u c e n m a t t e e o o e t l / d r e a s o r E b i t 1 i / o n i < a m u s a m e e < < d n n h e a i a n l p g g I u o h . l X c g f z r / c e m t > < < / / y > t e m : n m t a / t n 0 i M u o o e p e n e ) / / a a < i e d g > r a t k F e t " t L m w r n d a < t n < a a : : / r o n o e t a o i s a y S e o m e ) r / a t / : : d d a e r t c z s t r u l g / c n r a < a a t a a d d o o : i u o o r i i e f a h t k t c / m : i t : o o c c d d g m n u i / g s o s n e < ) ) o a > d o i d c c u u o o i e e r b a e r e n m / < o : o n o o u u m m c c n n c u p n l o a a / r d c > n c m m e e u u a t ( e t i j i e t - : a d o u > u e e n n m m l a # e / i m c a d d : i c m m n n t t e e t z w i m p t t a o d n u e e t t a a n n i o i t o r i i t c o a m n n a a t t t t o n t e n o o o a u c t e t t t t i i a n e h m o v n n t m u e n a a i i o o t > _ s g e s y e m s t t t o o n n i X a / a d / p n e a i i n n > > o X X t 1 e t n t o o > > n X u X a w . s a t i n n > X n X r o 0 " t a o > > i X i r " i t n f q - / k o i > o u X a n o r e X p e > n m . i f > a I j / f t D s i i ) o t c < n e i / m e a s n : / c d \ y o d c { u 4 m } e - n \ t d a { t 2 i } o \ n . > j s o n < / p a r a m > Applying to XML# Apply the created RNG file as follows.
< < < < ? ? ? T x x x E m m m s I < l l l c t - - h x e v m m e m i < e o o m l H f r d d a n e i s e e t s a l < i l l y = d e t o p " e D i n h h e h r e t < = r r n t > s l t " e e s t c e i 1 f f = p > S t . = = " : t l 0 " " h / m e " 0 0 t / t > 1 1 t w > 校 e _ _ p w 異 n c c : w 源 c u u / . 氏 o s s t 物 d t t p e 語 i o o u i ・ n m m r - き g . . l c り = r r . . つ " n n o o ぼ U g g c r < T " " l g / F c t - t t . n i 8 y y o s t " p p r / l ? e e g 1 e > = = / . > " " d 0 a a s " p p d > p p l l l / i i s c c c a a h t t e i i m o o a n n t / / r x x o m m n l l " " " ? > s c h e m a t y p e n s = " h t t p : / / r e l a x n g . o r g / n s / s t r u c t u r e / 1 . 0 " ? > As a result, the available tags are displayed in a limited manner, as shown below.
The available attributes are also limited.
Furthermore, the attribute values are also constrained by format restrictions.
The same restrictions apply in Scholarly XML for VSCode.
https://marketplace.visualstudio.com/items?itemName=raffazizzi.sxml
Building such a working environment is expected to reduce inconsistencies in deliverables across different workers.
Summary# I hope this serves as a useful reference as an example of creating RNG files bottom-up.