2017-04-02 5 views
-2

XQuery를 사용하여 XML 파일을 BaseX에서 쿼리하려고했습니다. 불행히도 쿼리는 결과를 반환하지 않습니다. XQuery의 프롤로그에있는 네임 스페이스의 잘못된 선언으로 인해 발생했다고 생각합니다. 원본 XML에서 사용 된 네임 스페이스는 아래 코드를 참조하십시오.쿼리가 XQuery에서 결과를 반환하지 않습니다.

<page xmlns="http://www.somewebsite.nl/Productoverzicht" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:dcterms="http://purl.org/dc/terms/" 
xmlns:overheid="http://standaarden.overheid.nl/owms/terms/" 
xmlns:overheidproduct="http://standaarden.overheid.nl/product/terms/" 
xmlns:overheidsc="http://standaarden.overheid.nl/sc/terms/" 
xsi:schemaLocation="http://www.somewebsite.nl/Productoverzicht 
http://www.somewebsite.nl/xsd/productoverzicht6.2.xsd 
http://standaarden.overheid.nl/product/terms/ 
http://standaarden.overheid.nl/sc/4.0/xsd/sc.xsd"> 

하나의 제품 항목 만 포함 된 원본 XML의 일부를 복사했습니다.

\\\title\\\product과 같은 XQuery 및 XPath 표현식을 사용하지 않으려했으나 결과가 표시되지 않았습니다.

XML BaseX 예제 (factbook.xml)는 같은 종류의 명령을 사용하여 결과를 표시합니다. 아마도 네임 스페이스와 관련이있는 것 같습니다.

최종 목표는 특정 URL에 하이퍼 링크가 포함 된 모든 제품을 나열하는 것입니다.

<?xml version="1.0" encoding="UTF-8"?> 
<page xmlns="http://www.somewebsite.nl/Productoverzicht" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:overheid="http://standaarden.overheid.nl/owms/terms/" xmlns:overheidproduct="http://standaarden.overheid.nl/product/terms/" xmlns:overheidsc="http://standaarden.overheid.nl/sc/terms/" xsi:schemaLocation="http://www.somewebsite.nl/Productoverzicht http://admin.somewebsite.nl/xsd/productoverzicht6.2.xsd http://standaarden.overheid.nl/product/terms/ http://standaarden.overheid.nl/sc/4.0/xsd/sc.xsd"><product id="1656"><overheidproduct:scproduct owms-version="4.0"><overheidproduct:meta><overheidproduct:owmskern><dcterms:identifier><![CDATA[http://product.somewebsite.nl/product.xml?view=product&account_id=337&product_collection_id=1497&lokettype=7&product_id=1656]]></dcterms:identifier><dcterms:title><![CDATA[Ontheffing aanvragen voor bijzonder transport]]></dcterms:title><dcterms:language>nl</dcterms:language><dcterms:type scheme="overheid:Informatietype">productbeschrijving</dcterms:type><dcterms:modified>2017-02-24</dcterms:modified><dcterms:spatial scheme="overheid:Gemeente" resourceIdentifier="http://standaarden.overheid.nl/owms/terms/x_(gemeente)">x</dcterms:spatial><overheid:authority scheme="overheid:Gemeente" resourceIdentifier="http://standaarden.overheid.nl/owms/terms/x_(gemeente)">x</overheid:authority></overheidproduct:owmskern><overheidproduct:owmsmantel><dcterms:audience scheme="overheid:Doelgroep">ondernemer</dcterms:audience><dcterms:subject><![CDATA[voertuigbreedte]]></dcterms:subject><dcterms:subject><![CDATA[transporteren goederen]]></dcterms:subject><dcterms:subject><![CDATA[exceptioneel]]></dcterms:subject><dcterms:subject><![CDATA[exeptioneel]]></dcterms:subject><dcterms:subject><![CDATA[ondeelbare lading]]></dcterms:subject><dcterms:subject><![CDATA[lange zware voertuigen]]></dcterms:subject><dcterms:subject><![CDATA[lzv]]></dcterms:subject><dcterms:subject><![CDATA[kranen]]></dcterms:subject><dcterms:subject><![CDATA[leegritten]]></dcterms:subject><dcterms:subject><![CDATA[bijzonder transport]]></dcterms:subject><dcterms:abstract><![CDATA[Er zijn regels opgesteld over goederenvervoer. Bijvoorbeeld over hoe lang en breed de lading die u vervoert, mag zijn. Het is verboden om goederen te transporteren die te lang of te breed zijn. Wilt u toch grotere goederen vervoeren? Vraag dan een ontheffing aan.]]></dcterms:abstract></overheidproduct:owmsmantel><overheidproduct:scmeta><overheidproduct:productID>1656</overheidproduct:productID><overheidproduct:onlineAanvragen>ja</overheidproduct:onlineAanvragen><overheidproduct:aanvraagURL resourceIdentifier="https://www.rdw.nl/sites/ontheffingen/Paginas/Regel-het-online.aspx?path=Portal/Ontheffingen/Online%20diensten"/><overheidproduct:uniformeProductnaam scheme="overheid:UniformeProductnaam" resourceIdentifier="http://standaarden.overheid.nl/owms/terms/bijzonder_transportontheffing">bijzonder transportontheffing</overheidproduct:uniformeProductnaam></overheidproduct:scmeta></overheidproduct:meta><overheidproduct:body> 
       <overheidproduct:productHTML xmlns="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd">&lt;p&gt;Er zijn regels opgesteld over goederenvervoer. Bijvoorbeeld over hoe lang en breed de lading die u vervoert, mag zijn. Het is verboden om goederen te transporteren die te lang of te breed zijn. Wilt u toch grotere goederen vervoeren? Vraag dan een ontheffing aan. Er zijn verschillende soorten ontheffingen:&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;incidentele ontheffing&lt;/li&gt; 
&lt;li&gt;langlopende ontheffing&lt;/li&gt; 
&lt;li&gt;LZV-ontheffing&lt;/li&gt; 
&lt;li&gt;landbouwontheffing&lt;/li&gt; 
&lt;/ul&gt;</overheidproduct:productHTML> 
       </overheidproduct:body></overheidproduct:scproduct><name>Ontheffing aanvragen voor bijzonder transport</name><created>2016-12-13T06:31:19</created><updated>2017-02-24T18:05:39</updated><language>NL</language><author><name>avos</name></author><publicerendeOrganisatie><gemeenten>x</gemeenten></publicerendeOrganisatie><abbr/><description><![CDATA[<p>Er zijn regels opgesteld over goederenvervoer. Bijvoorbeeld over hoe lang en breed de lading die u vervoert, mag zijn. Het is verboden om goederen te transporteren die te lang of te breed zijn. Wilt u toch grotere goederen vervoeren? Vraag dan een ontheffing aan. Er zijn verschillende soorten ontheffingen:</p> 
<ul> 
<li>incidentele ontheffing</li> 
<li>langlopende ontheffing</li> 
<li>LZV-ontheffing</li> 
<li>landbouwontheffing</li> 
</ul>]]></description><conditions><![CDATA[De voorwaarden verschillen per type ontheffing.]]></conditions><contact><![CDATA[<p>U vraagt de ontheffing aan bij de RDW. De RDW regelt het met de eigenaar van de weg. Dit is bijvoorbeeld de gemeente of de provincie.</p>]]></contact><period/><procedure><![CDATA[<p>Om een ontheffing voor bijzonder transport aan te vragen, geeft u door:</p> 
<ul> 
<li>hoe groot het transport is</li> 
<li>welke route u wilt rijden</li> 
<li>wanneer en hoe laat het transport moet plaatsvinden&nbsp;</li> 
</ul>]]></procedure><appeal><![CDATA[<p>U kunt bezwaar maken tegen de beslissing op uw aanvraag. Doe dit binnen 6 weken. Bent u het daarna niet eens met de uitspraak op het bezwaarschrift? Teken dan beroep aan bij de rechtbank.</p>]]></appeal><notice/><costs/><admin_memo/><desk_memo/><publish_from>2016-12-13</publish_from><publish_to/><date_expires/><uitvoerende_instanties/><indieningsadressen/><contactpersonen/><law_rules><law_rule type="3" id="146"><law_rule_name>Reglement verkeersregels en verkeerstekens 1990</law_rule_name><url><![CDATA[http://wetten.overheid.nl/BWBR0004825/]]></url><remark/></law_rule><law_rule type="1" id="1916"><law_rule_name>Regeling voertuigen</law_rule_name><url><![CDATA[http://wetten.overheid.nl/BWBR0025798/]]></url><remark/></law_rule><law_rule type="1" id="3135"><law_rule_name>Wegenverkeerswet 1994</law_rule_name><url><![CDATA[http://wetten.overheid.nl/BWBR0006622]]></url><remark/></law_rule></law_rules><law_rule_article_1/><law_rule_article_2/><law_rule_article_3/><law_rule_article_4/><law_rule_article_5/><subsidies/><subsidies_maximale_bijdrage/><subsidies_budget/><subsidies_startdate/><subsidies_enddate/><subsidies_date_submission/><subsidies_remark/><formulieren_extern><formulier target="_blank"><id>15018</id><type>extern_link_forms</type><label><![CDATA[Ontheffing online aanvragen bij de RDW]]></label><href><![CDATA[http://www.rdw.nl/sites/ontheffingen/Paginas/Regel-het-online.aspx?path=Portal/Ontheffingen/Online%20diensten]]></href></formulier></formulieren_extern><formulieren_intern/><product_links><product_link><product_link_name><![CDATA[Voorwaarden voor de ontheffing (RDW.nl)]]></product_link_name><product_link_url><![CDATA[http://www.rdw.nl/sites/ontheffingen/Paginas/default.aspx]]></product_link_url></product_link><product_link><product_link_name><![CDATA[Informatie over bijzonder transport (RDW.nl)]]></product_link_name><product_link_url><![CDATA[http://www.rdw.nl/Zakelijk/Paginas/Bijzonder-vervoer.aspx]]></product_link_url></product_link></product_links><activiteitsgebieden/><vestigingsgebieden/><target_groups/><themes/><categories/><completion_levels/><completion_level_arguments/><life_occurrences/><authorities><authoritie><id>182</id><name>Rijk</name></authoritie></authorities><subjects1><subject><id>512</id><name>ver.veiligheid</name></subject></subjects1><vind_themes><vind_theme><id>582</id><name>Verkeer &amp; Vervoer:Speciaal vervoer</name></vind_theme><vind_theme><id>583</id><name>Verkeer &amp; Vervoer:Vergunningen en bewijzen</name></vind_theme></vind_themes><vind_doelgroepen><vind_doelgroep><id>914</id><name>Groep</name></vind_doelgroep><vind_doelgroep><id>915</id><name>Instelling</name></vind_doelgroep><vind_doelgroep><id>916</id><name>Onderneming</name></vind_doelgroep></vind_doelgroepen><vind_rollen><vind_rol><id>918</id><name>belangenbehartiger</name></vind_rol><vind_rol><id>921</id><name>exploitant</name></vind_rol><vind_rol><id>922</id><name>exploitant, beheerder</name></vind_rol><vind_rol><id>933</id><name>organisator</name></vind_rol></vind_rollen><productgroepen/><resultaten><resultaat><id>871</id><name>Ontheffing</name></resultaat></resultaten><branches/><doelgroepen><doelgroep>organisatie/ondernemer</doelgroep></doelgroepen><synoniemen><synoniem>bijzonder transport</synoniem><synoniem>exceptioneel</synoniem><synoniem>exeptioneel</synoniem><synoniem>kranen</synoniem><synoniem>lange zware voertuigen</synoniem><synoniem>leegritten</synoniem><synoniem>lzv</synoniem><synoniem>ondeelbare lading</synoniem><synoniem>transporteren goederen</synoniem><synoniem>voertuigbreedte</synoniem></synoniemen><tio_themes><tio_theme id="11a5" prefLabel="Voertuigen" resourceIdentifier="http://standaarden.overheid.nl/owms/terms/Voertuigen_(thema)">Voertuigen</tio_theme></tio_themes><error>no</error></product></page> 
+4

실제 데이터의 작은 예와 이미 쿼리에 대해 시도한 것을 추가하십시오. –

+0

방금 ​​원래 게시물을 편집했습니다. 지금 모든 것이 명확한 지 알려주세요. –

답변

0

아래 코드를 추가하면 문제가 해결됩니다.

declare default element namespace "http://www.somewebsite.nl/Productoverzicht"; 
declare namespace dcterms = "http://purl.org/dc/terms/"; 
declare namespace overheid = "http://standaarden.overheid.nl/owms/terms/"; 
declare namespace overheidproduct = "http://standaarden.overheid.nl/product/terms/"; 
declare namespace overheidsc = "http://standaarden.overheid.nl/sc/terms/";