Getting the wrong order when using ORDER BY in XQuery using Saxon processor on Oxygen XML Editor -
this first post , i'm seeking because i've tried without luck.
so, i'm trying use simple xquery data xml file (showed below), i'm having trouble trying order results, don't appear expected.
my input file:
<?xml version="1.0" encoding="utf-8"?> <database name="mydb"> <constraints> <constraint name="asignaturas_matriculadas_chk1"> <type>c</type> <table-name>asignaturas_matriculadas</table-name> <condition>convocatorias_agotadas >= 0 , convocatorias_agotadas < 6</condition> </constraint> <constraint name="sys_c0029035"> <type>c</type> <table-name>asignaturas_matriculadas</table-name> <condition>"convocatorias_agotadas" not null</condition> </constraint> <constraint name="sys_c0029034"> <type>c</type> <table-name>asignaturas_matriculadas</table-name> <condition>"cod_asignatura" not null</condition> </constraint> <constraint name="sys_c0029033"> <type>c</type> <table-name>asignaturas_matriculadas</table-name> <condition>"nif_alumno" not null</condition> </constraint> <constraint name="sys_c0029031"> <type>c</type> <table-name>asignaturas</table-name> <condition>"codigo" not null</condition> </constraint> <constraint name="sys_c0029027"> <type>c</type> <table-name>alumnos</table-name> <condition>"nif" not null</condition> </constraint> <constraint name="sys_c0029029"> <type>c</type> <table-name>alumnos</table-name> <condition>"primer_apellido" not null</condition> </constraint> <constraint name="sys_c0029028"> <type>c</type> <table-name>alumnos</table-name> <condition>"nombre" not null</condition> </constraint> <constraint name="asignaturas_matriculadas_fk1"> <type>r</type> <table-name>asignaturas_matriculadas</table-name> <referenced-constraint-name>alumnos_pk</referenced-constraint-name> </constraint> <constraint name="asignaturas_matriculadas_fk2"> <type>r</type> <table-name>asignaturas_matriculadas</table-name> <referenced-constraint-name>asignaturas_pk</referenced-constraint-name> </constraint> <constraint name="alumnos_pk"> <type>p</type> <table-name>alumnos</table-name> <column-name>nif</column-name> </constraint> <constraint name="asignaturas_pk"> <type>p</type> <table-name>asignaturas</table-name> <column-name>codigo</column-name> </constraint> </constraints> </database> what i'm trying quite simple, constraints type "c" , show name of them, sorted alphabetically.
this xquery:
<check-constraints> { $r in doc("db.xml")//constraint[type = 'c']/@name order $r return <constraint>{data($r)}</constraint> } </check-constraints> the result i'm expecting follows:
<?xml version="1.0" encoding="utf-8"?> <check-constraints> <constraint>asignaturas_matriculadas_chk1</constraint> <constraint>sys_c0029027</constraint> <constraint>sys_c0029028</constraint> <constraint>sys_c0029029</constraint> <constraint>sys_c0029031</constraint> <constraint>sys_c0029033</constraint> <constraint>sys_c0029034</constraint> <constraint>sys_c0029035</constraint> </check-constraints> but instead, i'm getting result:
<?xml version="1.0" encoding="utf-8"?> <check-constraints> <constraint>sys_c0029031</constraint> <constraint>asignaturas_matriculadas_chk1</constraint> <constraint>sys_c0029027</constraint> <constraint>sys_c0029028</constraint> <constraint>sys_c0029029</constraint> <constraint>sys_c0029035</constraint> <constraint>sys_c0029034</constraint> <constraint>sys_c0029033</constraint> </check-constraints> what doing wrong? why "order by" not sorting should? if don't put "order by" result in same order listed in file, makes sense because nodes entered found.
edit: suggested, apparently due xquery processor. in case i'm working on oxygen, uses saxon processor default. tried zorba , works there. i'm more confused, right output?
solved: input file contained random length number of bom characters on of values (by error), , invisible, made ordering go off. taking them away makes work expected.
your query gives expected result when run command line in saxon 9.4. works correctly me in oxygen 13.1 (using saxon 9.3.0.5). must way running it. perhaps you've somehow got query scenario wrong not using correct files?
Comments
Post a Comment