XQuery�����̌����Ă݂�
XML�̖{�i���p�Ɍ������d�v�ȋZ�p��1��XML�f�[�^�x�[�X�̔��W���B���̃J�M������̂́A�₢���킹����XQuery�̕W�����ł���B���݁AXQuery�͕W�����ڑO�̂Ƃ���܂ł��Ă���A���ۂ�XQuery�̎������o�ꂵ�Ă���B�{�L���́A����XQuery�����H���邱�Ƃ�ړI�Ƃ����B |
���喫
�r�[�R��IT
2002/8/7
�@�{�`���[�g���A���́AXML�f�[�^�x�[�X�̖₢���킹����Ƃ���W3C�ŕW�������i��ł���uXQuery 1.0: An XML Query Language�v�̊w�K��ړI�Ƃ������̂ł���BXQuery�ɂ��ẮA�u�W�����ڑO�F���ڂ�XML�₢���킹���� XQuery�v�̋L�����ŁA���̋@�\�╶�@��������Ă���BXQuery���ȒP�ɂ����A�����[�V���i���f�[�^�x�[�X�ɂ�����SQL�̂悤�ɁAXML�f�[�^�x�[�X�ɑ��ď_����͂Ȗ₢���킹���s�����Ƃ��ł��錾�ꂾ�BSQL����^�f�[�^�����������[�V���i���f�[�^�x�[�X�̍����̔��W�ɑ傫����^�����悤�ɁAXQuery��XML�f�[�^�x�[�X�̔��W�ɑ傫�ȈӖ������W���ł��邱�Ƃ͊ԈႢ�Ȃ��B
�@�{�`���[�g���A���ł́A����XQuery�ɑΉ������A�v���P�[�V�����ł���uQuiP�v�𗘗p���āAXQuery�̓����̌����Ă����������Ƃ�ʂ��āAXQuery���}�X�^�[���邱�Ƃ����ɒu���Ă���B
�@QuiP�Ƃ��ƃ\�t�g�E�F�A�E�G�[�W�[�����J������XQuery 1.0�̃N�G���v���Z�b�T�ł���A2001�N12��20���ɒ�o���ꂽXQuery�̃��[�L���O�h���t�g�ɑΉ����Ă���B���Ђ̐��i�ł͂Ȃ��AXQuery�̎����Ɗw�K��ړI�ɍ���A�����Ŕz�z����Ă���A�v���P�[�V�������B�������A�{�`���[�g���A���ł�QuiP�̋@�\��������邱�Ƃ��ړI�ł͂Ȃ����߁A���ׂĂ̋@�\��������Ă͂��Ȃ��B���̓_�͂������������������B
��QuiP�̓����
�@����͈ȉ��̃V�X�e�����Ń`���[�g���A�����쐬���Ă���B
OS | Windows 98�i�ق��ɂ�Windows�n�ALinux�œ���\�j |
CPU | Pentium II�i�C���e�����̂ق��̏��CPU�ł�����\�j |
Memory | 128Mbytes |
HDD | 5.82Gbytes |
JRE | J2SE 1.3.1_02�iJRE 1.3�ȏ�œ���\�j |
�@���o�[�W������QuiP�ŃT�|�[�g���镶���R�[�h��UTF-8�݂̂ł���B�̂�QuiP�ŗ��p����XML������UTF-8�`���ŕۑ����Ȃ���Ȃ�Ȃ��B�����R�[�h�Ƃ���UTF-8�`�����T�|�[�g����G�f�B�^�͂���������̂ŁA�����ŏЉ�Ă����B
- Windows 2000�̏ꍇ
Windows 2000�̏ꍇ�́A���������W����UTF-8���T�|�[�g���Ă���B - Windows98�̏ꍇ
�G�ۃG�f�B�^�ȂǁAUTF-8���T�|�[�g���Ă���G�f�B�^���g�p����B
�@����ȊO�ɂ��A�������UTF-8���T�|�[�g����G�f�B�^�͂���̂ŁA�D�݂̂��̂�T���Ă������������B
��QuiP�̃C���X�g�[��
�@�\�t�g�E�F�A�E�G�[�W�[�����Ă���QuiP�i�ȉ��A�\�t�g�E�F�A�E�G�[�W�[�Łj�Ɋ܂܂�Ă���t�@�C���ɂ́A���R�̂��ƂȂ���{�`���[�g���A���̒��Ŏg�p���Ă�����{��T���v���͓����Ă��Ȃ��B�����ŁA�M�҂��T���v����t�������o�[�W�������r�[�R��IT��Web�T�C�g�ɗp�ӂ����i�ȉ��r�[�R��IT�Łj�B�r�[�R��IT�łɂ́A�\�t�g�E�F�A�E�G�[�W�[������t�@�C���ɁA�{�`���[�g���A���Ő������Ă���T���v����XML������₢���킹�����������̂��B�܂�A��{�I�ɂ̓r�[�R��IT�łƃ\�t�g�E�F�A�E�G�[�W�[�ł̓T���v���t�@�C���̈Ⴂ�ƁAWindows 98�Ȃǂł��N���ł���悤�ȃo�b�`�t�@�C����lj����������ł���BQuiP�{�͓̂������̂��B
�L�����J��A�\�t�g�E�F�A�E�G�[�W�[�ł̓o�[�W�����A�b�v���A2002�N4���Ɍ��J���ꂽXQuery�̃h���t�g�ɑΉ������A�o�[�W����2.2.1�ɂȂ��Ă���B�r�[�R��IT�ł��߁X2.2.1�ɕύX�\�肾�B�������A���̃o�[�W�����ł͂��̋L���Ɏ��^�����T���v���ňꕔ���삵�Ȃ��\��������B�T���v���̏C���Ȃǂɂ��ẮA�A�ڑ�2��őΉ�����\�肾�B�i2002�N8��21���j |
�@�\�t�g�E�F�A�E�G�[�W�[�łŒlj����ꂽ�T���v���t�@�C���̂����A�{�`���[�g���A�������H����̂ɕK�v�ȃt�@�C���́A��IT�̃T�C�g��ɂ��u���A�{�`���[�g���A������擾�\�ɂ��Ă���B�\�t�g�E�F�A�E�G�[�W�[�ŁA�r�[�R��IT�ł̂ǂ����I��ł��A�{�`���[�g���A�����������Ƃ͂ł���͂����B�܂��A���ۂ�QuiP�삳���Ȃ��Ă��A�{�`���[�g���A���ŏЉ��N�G���ƌ��ʂ�ǂ��Ă��������ł�XQuery�̓���������ł��邾�낤�B
�@QuiP�̍ŐV�A�[�J�C�u�t�@�C���̃_�E�����[�h�͉��L����s����B
�@�����ł́A�r�[�R��IT�ł�O��ɂ��Đ��������Ă����B
�@�܂��AQuiP���g�����Ԃɂ��Ă݂悤�B�擾�������k�t�@�C����QuiP-2111-win32-Tutorial.zip���𓀂���B�����āAQuipGui.cmd�iWindows 98�̏ꍇ��QuipGui.bat�j���N���b�N����B���������N����Ȃ��ꍇ�́A�ȉ��̂��Ƃ��`�F�b�N����B
�\�t�g�E�F�A�E�G�[�W�[������ZIP�t�@�C���̒��ɂ͋N���t�@�C���Ƃ���cmd�t�@�C�������Ȃ������̂ŁA�r�[�R��IT�łł͕M�҂�bat�t�@�C��������ē���Ă���B |
�i1�j Java�̓�������C���X�g�[������Ă��邩�H
������Ƃ��āAJRE 1.3�ȏ�̊����K�v�ł���B���Ȃ݂ɁA�{�`���[�g���A���ł�J2SE 1.3.1_02���g���Ă���BJRE�́A�T���E�}�C�N���V�X�e���Y��Java��Web�T�C�g�������ł���iJ2SE�̃y�[�W�ւ̃����N�j�B
�i2�j JDK��PATH���ʂ��Ă��邩�H
QuiP�̈��k�t�@�C���Ɋ܂܂�Ă���QuipGui.cmd�ɂ́AJDK�̃p�X�����ߑł��œ����Ă��邪�AJDK�̃o�[�W�����ɂ���Ă��̃p�X���قȂ��Ă���BQuipGui.cmd��������QuipGue.bat��ҏW���āA�������p�X��ݒ肵�悤�B
�i3�j Windows�̃o�[�W������.cmd�t�@�C�������s�ł��邩�H
Windows 2000�ł�.cmd�t�@�C�����_�u���N���b�N���Ď��s���邪�AWindows 98�Ȃǂł�bat�t�@�C���̕������s���悤�B
![]() |
���1�@QuiP�̏����E�B���h�E |
�@QuiP���N��������A��L��GUI�̉�ʂ��o�͂���邩���m�F���悤�B�����ăC���X�g�[���̊m�F�����邽�߂ɁA�mFile�n���j���[����mOpen�n��I�����AQuiP���𓀂����t�H���_�̔z���ɂ���examples/Tutorial/Query�t�H���_�̉��́uinstallTest.xquery�v��I������B���2�̂悤�ɁA�㕔�̃e�L�X�g���̓G���A�ɃN�G�����\�����ꂽ��A�mEXECUTE�n�{�^�����N���b�N����B�����āA���2�̉����̃e�L�X�g�o�̓G���A�Ɍ��ʂ��o�͂���邩���m�F����B���3�̂悤�ɃN�G���̌��ʂ��������o�͂����A�C���X�g�[���͐���ɏI���������ƂɂȂ�B
�\�t�g�E�F�A�E�G�[�W�[�ł̗��p�҂́Aexamples�t�H���_�̉���Tutorial�t�H���_�����A����ɂ��̉���Query�t�H���_��Data�t�H���_���쐬���Ă��������B�����āAQuery�t�H���_��installTest.xquery�t�@�C�����AData�t�H���_��projects.xml�����ꂼ��i�[���Ă���A��L�̑���������Ă��������B |
examples/Tutorial/Query�́AWindows�n�ł�examples\Tutorial\Query�ƋL�q�����BQuiP�ł͂ǂ���̋L�q�����Ă��\��Ȃ��B |
![]() |
���2�@�����ɃN�G�������s���Ă݂� |
![]() |
���3�@�N�G���̌��ʂ��\������� |
�@���ʂ�������ꍇ�͈ȉ��̍��ڂ��m�F����B
- �E�㕔Software AG�̃��S�̉��̑I���{�^����Filesystem�ƂȂ��Ă��邩�H
- Filesystem�̉��̓��̓{�b�N�X��./example�ƂȂ��Ă��邩�H
���N�G���ƃf�[�^�ւ̃t�@�C���p�X
�@���1�Ɍ���悤�ɁAQuiP��2�̃e�L�X�g���o�̓G���A����Ȃ�B�㕔�̃e�L�X�g���̓G���A�̓N�G������͂��镔���ł���A�����̃e�L�X�g�o�̓G���A�͌��ʂ��o�͂��镔���ł���B�㕔�E���̃��S�̉��ɂ��郉�W�I�{�^���́A�N�G���Ώۂ�XML�������A�t�@�C���Ƃ��Ċi�[����Ă���̂��A����Ƃ�XML�l�C�e�B�u�f�[�^�x�[�X�ł���uTamino�v�Ɋi�[����Ă���̂���I��������̂ł���B����̃`���[�g���A���ł͌����ΏۂƂȂ�XML�����̊i�[�Ƀt�@�C���V�X�e�����g�p���邪�ATamino�𗘗p�������ꍇ��90���̎��p��������Ă���̂ł���𗘗p���邱�Ƃ������߂���B
�@XML�����̊i�[�`�ԂɃt�@�C����I�ꍇ�A�uDirectory�v�Ə����ꂽ���̓G���A�ɂ́AXML�������i�[����Ă���t�H���_���w�肷��i��������[�g�t�H���_�ƌĂԁj�B���4�ł́A���[�g�t�H���_���g./examples�h�Ƃ��Ă���AQuiP���C���X�g�[�������t�H���_�̉���examples�t�H���_���w�肳��Ă���B�Ⴆ�A���1�œ��͂����N�G���́A���̂悤�Ȃ��̂������B
document("Tutorial/data/projects.xml")//member/name |
�mInstallTest�n�@�C���X�g�[���e�X�g�̂��߂̊ȒP�Ȗ₢���킹 |
�@���̂Ƃ��Aprojects.xml�t�@�C���ɂ̓p�X�Ƃ���./examples���t������A./examples/Tutorial/data/projects.xml�̃t�@�C�����g�p���邱�ƁA�Ƃ����Ӗ��ɂȂ�B�܂��A���L�̂悤�ɁA�t�@�C�����p�X�ŕ\�����Ƃ��ł���B
document("C:/QuiP/examples/Tutorial/data/projects.xml")//member/name |
�@���̏ꍇ�̓��[�g�t�H���_�̐ݒ�͖��������B�{�`���[�g���A���ɂ����ẮA���ׂđ��p�X�Ŏ����A./examples�̔z����Tutorial�t�H���_�̉��ɁAData��Query�Ƃ����t�H���_���ł��ꂼ��AXML�����ƃN�G����ۑ����邱�ƂƂ���B
��Path�\�����ɂ��N�G���̎��s
�@���́A�ȒP�ȃN�G�������s���Ă݂�B����XML�����́A����v���W�F�N�g�̐������������̂ł���B�v���W�F�N�g���A�v���W�F�N�g�̊��ԁA�v���W�F�N�g�����o�[�A�����Ă��ꂼ��̃����o�[���ǂꂾ���̍H����������\��ł��邩���L�q���Ă���BXML�̓�����������邽�߂ɁA���ꂼ��̃v���W�F�N�g�ɂ�������Ă��郁���o�[�͌J��Ԃ����������v�f�ŕ\���Ă���BProjects.xml�t�@�C����./examples/Tutorial/data�̃t�H���_�̉��ɂ���B
<?xml version="1.0" encoding="UTF-8"
?> |
���X�g1�@�����ΏۂƂȂ�t�@�C��Projects.xml |
�@����projects.xml�̒����炷�ׂẴv���W�F�N�g�������o���Ă݂悤�B���Ɏ����₢���킹�́APath�\���ƌĂ����̂��BPath�\���̏ڍׂ́A�u�W�����ڑO�F���ڂ�XML�₢���킹���� XQuery�v�̒��́A�u2�̕\�����APath��FLWR�v���Q�Ƃ��Ăق����B�ꉞ�����ŊȒP�ɐ�������ƁAPath�\������XPath 2.0�̃T�u�Z�b�g�ŁA �f�B���N�g���������悤�ɃX���b�V���i/�j���g���ĊK�w�\���������\�������B
document("Tutorial/data/projects.xml")//project/name |
[ example-2-1-1] �@projects.xml�̒����炷�ׂẴv���W�F�N�g�������o�� |
�r�[�R��IT�łɂ�example�t�@�C�����܂܂�Ă���B��L�́gexample-2-1-1�h�̏ꍇ�́A�gexample-2-1-1.xquery�h�t�@�C�����g./examples/Tutorial/query�h�t�H���_���ɂ���AQuiP�́mFile�n���j���[����mOpen�n��I�����邱�ƂŌĂяo����B |
�@�@���̖₢���킹�̑O���ɂ���Adocument("Tutorial/data/projects.xml")//project/name�́A�g//�h�̕\���ɂ����Projects.xml�̕������̂ǂ����ɂ���project�Ƃ����v�f����T���o���B�̂ɁA��L�\�����ł��ׂĂ�project�̎q�v�fname�����o���ĕ\���ł���B
�@�܂��Adocument("Tutorial/data/projects.xml")//name�̂悤�ɋL�q����ƁAproject.xml���ɂ��邷�ׂĂ�name�v�f��T���o���̂ŁA���4�̂悤�ɁA�v���W�F�N�g���ƃ����o�[���̗������\�������B
![]() |
���4�@�v���W�F�N�g���ƃ����o�[���̗������\������� |
�@XQuery�ł́A�N�G���̌��ʁA�I���W�i���̕����̗v�f�̏��Ԃ������i���Ȃ݂�SQL�ł͌������ʂ̍s�̏��Ԃ͕ۏ���Ȃ��j�B�̂ɁA��L���4�ł́A�N�G���̌��ʂ��I���W�i���̕����Ɠ������Ԃŏo�͂���Ă���B���ʂ̏��Ԃ�ς���ɂ́Asort�\�������g���B�Ⴆ�A�v���W�F�N�g�̏I�����x�����Ԃɕ\���������ꍇ�́Asort�\�����ƁA�~���������gdescending�h�L�[���[�h���g���Ď��̂悤�ɋL�q����B
document("Tutorial/data/projects.xml")//project
sortby (@end descending) |
[ example-2-1-2] �@�v���W�F�N�g�̏I�����x�����Ԃɕ��ёւ��� |
�@��L�ł́A���ʂ��~���ɕ\�����邽�߂Ɂgdescending�h�Ƃ����L�[���[�h���g���Ă��邪�A�����ɕ\���������ꍇ�́A�gascending�h�Ƃ����L�[���[�h���L�q����B�������A�����̃L�[���[�h���ȗ������ꍇ�͏����iascending�j�ƂȂ�B
�@���O�������o�͂������ꍇ�͎��̂悤�ɂȂ�B
document("Tutorial/data/projects.xml")//project/name
sortby (../@end descending) |
[ example-2-1-3] �@�v���W�F�N�g�̏I�����x�����Ԃɕ��ёւ��A�v���W�F�N�g���̂ݕ\������ |
�@�����Œ��ӂ��Ȃ�������Ȃ��̂́A�\�[�g�L�[���w�肷��ꍇ�A�g../@end�h�ƁA@end�̑O�Ɂg../�h���t���Ă���_�ł���B����͐e��\��Path�\���ł���A���̏ꍇproject/name�̐e�A�܂�project�̑�����\�����߂ɒ�`���Ă���B
�@���l�Ƀv���W�F�N�g���Ń\�[�g�������ꍇ�͎��̂悤�ȕ\�L�ɂȂ�B
document("Tutorial/data/projects.xml")//project/name
sortby (../name descending) |
[ example-2-1-4] �@�v���W�F�N�g���Ń\�[�g���A�v���W�F�N�g���̂ݕ\������ |
��FLWR�\���������s����
�@XQuery�̓�����FLWR�i�t�����[�Ɠǂށj�\�����ł���BFLWR�\�����̓����[�V���i���f�[�^�x�[�X�ŗp�����Ă���⍇������SQL��SELECT��AFROM��AWHERE��̂悤�ɁAFor�ALet�AWhere�AReturn��4�̋傩��Ȃ�A���ɍ��x�ŏ_��ȉ��Z��XML�����ɑ��Ď��s�ł���\�������BFLWR�\�����̏ڂ����Ӗ��ɂ��Ă��A�u�W�����ڑO�F���ڂ�XML�₢���킹���� XQuery�v���Q�l�ɂ��Ă������������B�����ł͎��H�𒆐S�ɂ��Ă����B
�@�ȒP��FLWR�\���������s���Ă݂悤�B���s����₢���킹���e�́u2���ȏチ���o�[�����݂���v���W�F�N�g�̖��O��\������v�ł���B�܂��͂��̖₢���킹��Path�\�����Ŏ��s���Ă݂�BPath�\�����ł͎��̂悤�Ȗ₢���킹�s����A�]�݂̌��ʂ͓�����B
document("Tutorial/data/projects.xml")//project[count( |
[ example-2-2-1]�@2���ȏチ���o�[�����݂���v���W�F�N�g��\������ |
![]() |
���5�@2���ȏチ���o�[�����݂���v���W�F�N�g���\������� |
�@���̏ꍇ�A���ʂƂ��ăI���W�i����XML�����̍\�������̂܂ܕԂ����B���������ʂƂ��ăv���W�F�N�g���ƃv���W�F�N�g�̃����o�[�̖��O������\���������ꍇ�AFLWR�\������For�储���Return��Ŏ��̂悤�ɋL�q���邱�Ƃ��ł���B
for $i in �@ |
[ example-2-2-2]�@2���ȏチ���o�[�����݂���v���W�F�N�g�̃v���W�F�N�g���ƃ����o�[�̈ꗗ����� |
�@FLWR�\������Return��́A�����ΏۂƂȂ�XML�����ɂ͑��݂��Ȃ��v�f���⑮�����g�����Ƃ��ł���̂������ł���B�����XPath���ɂ����Ă͋L�q�ł��Ȃ������@�\�ł���AXQuery�̓����̑傫�ȓ_�ł���B�v���W�F�N�g�����A�g���r���[�g�ɂ������ꍇ�͎��̂悤�ɋL�q���邱�Ƃ��ł���B
for $i in�@�@�@�@�@�@�@�@document("Tutorial/data/projects.xml")//project[count( |
[ example-2-2-3]�@2���ȏチ���o�[�����݂���v���W�F�N�g�̃v���W�F�N�g���ƃ����o�[�̈ꗗ�����B�������A�v���W�F�N�g���͑����Ƃ��č쐬���� |
�@FLWR�\�����ł͂܂��AWhere��ŏ�����ݒ肷�邱�Ƃ��ł��邽�߁A��L�₢���킹�͎��̂悤�ȋL�q�����Ă����l�̌��ʂ�������i���6�j�B
for $i in |
[ example-2-2-4]�@FLWR�\����Where����g���A2���ȏチ���o�[�����݂���v���W�F�N�g�̃v���W�F�N�g���ƃ����o�[�̈ꗗ����� |
![]() |
���6�@2���ȏチ���o�[�����݂���v���W�F�N�g���\������� |
�@����́AQuiP�̊�{�I�Ȏg�����𒆐S�ɐ������Ă����B����́A����FLWR�\�����̑�������`���[�g���A���𑱂���\�肾�B
�@ | 1/5 | ![]() |
Index | |
�A�ځFXQuery�`���[�g���A�� | |
![]() |
XQuery�����̌����Ă݂� |
XQuery��FLWR�\�������g�����Ȃ� | |
�@ | XQuery�̊����g���A��`���� |
�@ | XQuery�ɂ��XML�����̌����`1 |
XQuery�ɂ��XML�����̌����`2 |
- QA�t���[�����[�N�F�d�l�K�C�h���C���������ɏ��i �i2005/10/21�j
�@�f�[�^�x�[�X�̋}����XML�Ή��Ɍ㉟������Ă��A9���ɓ����āuXQuery�v��uXPath�v�ɊW�����h���t�g����C��11�{���X�V���ꂽ - XML�������L�q����XMLspec�Ƃ͉��� �i2005/10/12�j
�@�uXML 1.0�����v��XMLspec DTD�ŋL�q����AXSLT�ɂ���Đ�������Ă���B�����XML���{���ɖ𗧂��Ă����̓I�ȏł��� - ���������������ɂ܂��W�����} �i2005/9/13�j
�@���������������iUTF-8�A�V�t�gJIS�Ȃǁj���������o����ɂ́A�j���g���Ɨ��̊W�ɂ���W�����}����������d�g�݂��K�v�ƂȂ� - XML�L�[�Ǘ��d�l�iXKMS 2.0�j�������ɏ��i �i2005/8/16�j
�@�Z�L�����e�B�֘A��XML�d�l�ɐi�W����B�܂��A���{���̐V����XML�\�t�g�E�F�A�A�[�L�e�N�`���uxfy technology�v�̏ڍׂ��Љ��
![]() |
|
|
|
![]() |