@@ -8,15 +8,12 @@ import type {
88 VerseData ,
99} from 'interlinearizer' ;
1010
11- /**
12- * Range: Index and Length attributes from fast-xml-parser. We set parseAttributeValue: true so
13- * numeric attributes (Index, Length) are parsed as numbers; no manual Number() at use sites.
14- */
11+ /** Range: Index and Length attributes. */
1512interface ParsedRange {
1613 /** Start index in source text (FXP attribute Index). */
17- [ '@_Index' ] : number ;
14+ [ '@_Index' ] : string ;
1815 /** Length of range (FXP attribute Length). */
19- [ '@_Length' ] : number ;
16+ [ '@_Length' ] : string ;
2017}
2118
2219/** Lexeme: Id (required), optional GlossId. */
@@ -186,8 +183,8 @@ export class InterlinearXmlParser {
186183 private readonly parser : XMLParser ;
187184
188185 /**
189- * Creates a parser configured for interlinear XML: attribute prefix `@_`, numeric attributes
190- * parsed as numbers, and array paths for Verses items, Cluster, Punctuation, and Lexeme.
186+ * Creates a parser configured for interlinear XML: attribute prefix `@_`, and array paths for
187+ * Verses items, Cluster, Punctuation, and Lexeme.
191188 */
192189 constructor ( ) {
193190 const options : Partial < X2jOptions > = {
@@ -197,7 +194,7 @@ export class InterlinearXmlParser {
197194 ignorePiTags : true ,
198195 trimValues : true ,
199196 parseTagValue : false ,
200- parseAttributeValue : true ,
197+ parseAttributeValue : false ,
201198 isArray : ( _tagName , jPath ) => {
202199 return [
203200 'InterlinearData.Verses.item' ,
0 commit comments