【コラム】

Java API、使ってますか?

28 XMLデータソースへの問い合わせはJSR 225で

28/60

JSR 225: XQuery API for Java (XQJ)

XQueryは、XML形式のデータソースに対して問い合わせを行うための関数型言語であり、「XQuery 1.0: An XML Query Language」としてW3C勧告になっている。「JSR 225: XQuery API for Java(以下、XQJ)」は、JavaアプリケーションにおいてXQuery 1.0仕様に準拠したXML問い合わせを行えるようにするためのAPIだ。

リレーショナルデータベースをデータソースとする場合、その問い合わせ言語としては一般的にSQLが使用される。Javaでは、SQLを利用するための標準的なAPIとしてJDBCが用意されている。JSR 225は、SQLにおけるJDBCの位置づけを、XQueryに対して実現するための仕様と言える。

XQueryの使用例

XQuery 1.0の詳細についてはW3C勧告の仕様を参照してもらうことにし、ここでは一般的によく使われる表現式をXQueryの一例として紹介したい。データソースとなるXML文書としてはリスト1のようなものを考えることにする。

リスト1 books.xml - データソースとなるXML文書

<books>
    <book isbn="978-4-8399-2424-9">
        <title>Java逆引きクイックリファレンス Java5/6対応</title>
        <author>team-thoth</author>
        <publisher>毎日コミニュニケーションズ</publisher>
        <price>2940</price>
    </book>
    <book isbn="978-4-8399-1979-5">
        <title>Code Quality ~コードリーディングによる非機能特性の識別技法~</title>
        <author>Diomidis Spinellis</author>
        <author>(株)トップスタジオ</author>
        <author>鵜飼文敏</author>
        <author>後藤正徳</author>
        <author>平林俊一</author>
        <author>まつもとゆきひろ</author>
        <publisher>毎日コミニュニケーションズ</publisher>
        <price>5880</price>
    </book>
    <book isbn="4-8399-1777-9">
        <title>Light Weight Java</title>
        <author>岡本隆史</author>
        <author>吉田英嗣</author>
        <author>金子崇之</author>
        <author>権藤夏男</author>
        <publisher>毎日コミニュニケーションズ</publisher>
        <price>3360</price>
    </book>
</books>

ここから、著者()が2人以上の本を選択し、リスト2のようなXML文書を抽出したい。

リスト2 抽出したいXML文書

<book authorCount="6">
    <title>Code Quality ~コードリーディングによる非機能特性の識別技法~</title>
    <author>Diomidis Spinellis</author>
    <author>(株)トップスタジオ</author>
    <author>鵜飼文敏</author>
    <author>後藤正徳</author>
    <author>平林俊一</author>
    <author>まつもとゆきひろ</author>
</book>
<book authorCount="4">
    <title>Light Weight Java</title>
    <author>岡本隆史</author>
    <author>吉田英嗣</author>
    <author>金子崇之</author>
    <author>権藤夏男</author>
</book>

この場合、リスト3に示すようなクエリを発行すればよい。

リスト3 抽出クエリの例

for $b in fn:doc("books.xml")//book
let $bt := $b/title/text()
where fn:count($b/author) >= 2
return
    <book authorCount=="{ fn:count($p/author) }">
        <title>{ $bt } </title>
        <author>{ $b/author/text() }</author>
    </book>

ここで使われているのは「FLWR表現式」と呼ばれる表現式である。FLWR表現式は「for」「let」「where」「return」の4つの句から成る表現式で、SQLのselectを使った式とよく似ている。

for句は繰り返しを表し、in句で指定されたPath表現式の展開結果の各ノードに対してそれぞれ繰り返し処理を実行する。Path表現式はXPath 2.0仕様に準拠している。この例の場合、「fn:doc("books.xml")//book」は、books.xml中のノードを表している。抽出されたノードに対しては1つ以上の変数を割り当てることができる。この例ではノードに対して$bという変数を割り当てることになる。

let句では「[変数名]:=[Path表現式]」の形式で変数の割り当てを行う。この例で$bはforで抽出された各ノードに割り当てられるので、$btはそのサブノードであるのテキスト形式を表すことになる。</p> <p>where句はforおよびletで抽出された結果を、指定された条件でフィルタするためのものだ。ここでは著者が2名以上のものを抽出している。</p> <p>最後のreturn句は、このクエリの結果を生成する。return句はforとletで抽出されたタプルそれぞれに対して1回ずつ実行される。したがってこの例の場合は、<acthor>を2つ以上持つ<book>ノードに対して1回ずつ呼び出され、結果としてをリスト2のようなXML文書が生成される。</p> <h3>XQJによるプログラミング</h3> <p>では上記のようなXQueryをXQJではどのように扱うのだろうか。JSR 225は2007年6月よりPublic Draftが公開されている。そこにはXQJを使ってXML問い合わせを行う例としてリスト4のようなコードが紹介されている。</p> <h4>リスト4 XQJを利用したコード例</h4> <pre><code>// XMLデータソースオブジェクトを取得 XQDataSource xqds = ...; // XQueryエンジンへ接続 XQConnection conn = xqds.getConnection(); // クエリを実行するためのXQExpressionオブジェクトを生成 XQExpression expr = conn.createExpression(); // 実行するクエリ String es = "for $n in fn:doc('catalog.xml')//item " + "return fn:data($n/name)"; // クエリを実行し、結果をXQResultSequenceに格納 XQResultSequence result = expr.executeQuery(es); // 結果を解析して表示 while (result.next()) { // retrieve the current item of the sequence as a String String str = result.getAtomicValue(); System.out.println("Product name: " + str); } // コネクションのクローズ処理 result.close(); expr.close(); conn.close(); </code></pre> <p>詳細は、同時に公開されているXQJのjavadocと照らし合わせるとわかりやすい。XQConnectionはXQueryエンジンへの接続を保持するクラスであり、そのインスタンスはXQDataSourceオブジェクトから取得できる。XQDataSourceはXMLデータソースを表すクラスで、実際のデータソースはJNDIなどから取得する。</p> <p>実際にクエリを発行するためには、XQConnectionからXQExpressionを生成する。XQExpressionにはクエリ発行のためのexecuteQuery()メソッドが用意されており、ここにXQuery仕様に則った式を渡せば結果がXQResultSequenceとして返ってくる。あとはこれを解析すれば、クエリの結果を取得することができる。</p> <p>この一連の手順はJDBCを用いてRDBMSに問い合わせする場合とよく似ており、JDBCに慣れ親しんだ開発者にとっても理解しやすい。ただし、それならば同様の機能をJDBCで提供すれば新たなAPIを定義する必要はないのではないかという意見もある。IBMはJSR 225のPublic Draftに対して「JDBC仕様と分ける積極的な理由な見つからない」として承認投票を棄権している。Java EE 6への採用が見送られたこともあり、今後の動向が気になるところだ。</p> </div> <!-- #EndEditable --> <!-- google_ad_section_end(name=s1) --> </div><!--/articleContents--> <!-- #BeginEditable "pageNavi" --><div class="str-lyt-page-nav-06-outer-upper"><!-- fix for ie7 --> <div class="str-lyt-page-nav-06"> <div class="str-lyt-page-nav-06-l"> <ul class="lyt-page-nav-06"> <li class="top"><a href="/column/jsr/001/index.html" onclick="news_func.gaClick(this,news_vars.ch);"><span><<</span></a></li> <li class="pre"><a href="/column/jsr/027/index.html" onclick="news_func.gaClick(this,news_vars.ch);"><span><</span></a></li> </ul> </div><!--/str-lyt-page-nav-06-l--> <div class="str-lyt-page-nav-06-m"> <ul class="nav"> <li><a href="/column/jsr/024/index.html" onclick="news_func.gaClick(this,news_vars.ch);">24</a></li> <li><a href="/column/jsr/025/index.html" onclick="news_func.gaClick(this,news_vars.ch);">25</a></li> <li><a href="/column/jsr/026/index.html" onclick="news_func.gaClick(this,news_vars.ch);">26</a></li> <li><a href="/column/jsr/027/index.html" onclick="news_func.gaClick(this,news_vars.ch);">27</a></li> <li class="active">28</li><li><a href="/column/jsr/029/index.html" onclick="news_func.gaClick(this,news_vars.ch);">29</a></li> <li><a href="/column/jsr/030/index.html" onclick="news_func.gaClick(this,news_vars.ch);">30</a></li> <li><a href="/column/jsr/031/index.html" onclick="news_func.gaClick(this,news_vars.ch);">31</a></li> <li><a href="/column/jsr/032/index.html" onclick="news_func.gaClick(this,news_vars.ch);">32</a></li> </ul> </div><!--/str-lyt-page-nav-06-m--> <div class="str-lyt-page-nav-06-r"> <ul class="lyt-page-nav-06"> <li class="nxt"><a href="/column/jsr/029/index.html" onclick="news_func.gaClick(this,news_vars.ch);"><span>></span></a></li> <li class="last"><a href="/column/jsr/060/index.html" onclick="news_func.gaClick(this,news_vars.ch);"><span>>></span></a></li> </ul> </div><!--/str-lyt-page-nav-06-r--> <div class="str-lyt-page-nav-06-r2"> <p>28/60</p> </div><!--/str-lyt-page-nav-06-r2--> </div><!-- fix for ie7 --> </div> <!-- #EndEditable --> <!-- #BeginEditable "contentsList" --><div class="articleContent-02 box-newsindex"> <div class="lyt-hdg-03-06"><p>インデックス</p><span class="link"><a href="/column/jsr/index.html">連載目次</a></span></div> <table class="lyt-tbl-01" cellpadding="0" cellspacing="0"> <tbody> <tr> <th class="th01">第60回</th> <td><a href="/column/jsr/060/">どうなる? 今後のJavaプラットフォーム(Java SE編)</a></td> </tr> <tr> <th class="th01">第59回</th> <td><a href="/column/jsr/059/">どうなる? 今後のJavaプラットフォーム(Java EE編)</a></td> </tr> <tr> <th class="th01">第58回</th> <td><a href="/column/jsr/058/">Java SE 7の要注目機能"クロージャ"はどうなるのか その6</a></td> </tr> <tr> <th class="th01">第57回</th> <td><a href="/column/jsr/057/">Java SE 7の要注目機能"クロージャ"はどうなるのか その5</a></td> </tr> <tr> <th class="th01">第56回</th> <td><a href="/column/jsr/056/">Java SE 7の要注目機能"クロージャ"はどうなるのか その4</a></td> </tr> <tr> <th class="th01">第55回</th> <td><a href="/column/jsr/055/">Java SE 7の要注目機能"クロージャ"はどうなるのか その3</a></td> </tr> <tr> <th class="th01">第54回</th> <td><a href="/column/jsr/054/">Java SE 7の要注目機能"クロージャ"はどうなるのか その2</a></td> </tr> <tr> <th class="th01">第53回</th> <td><a href="/column/jsr/053/">Java SE 7の要注目機能"クロージャ"はどうなるのか</a></td> </tr> <tr> <th class="th01">第52回</th> <td><a href="/column/jsr/052/">Early Draftが公開されたJSF 2.0</a></td> </tr> <tr> <th class="th01">第51回</th> <td><a href="/column/jsr/051/">EJBから独立したJava Persistence 2.0</a></td> </tr> <tr> <th class="th01">第50回</th> <td><a href="/column/jsr/050/">モバイルJavaの新しい潮流となるか - MSA 2.0のドラフト公開</a></td> </tr> <tr> <th class="th01">第49回</th> <td><a href="/column/jsr/049/">やっぱり基本はServlet - Servlet 3.0のEarly Draftを読む</a></td> </tr> <tr> <th class="th01">第48回</th> <td><a href="/column/jsr/048/">JOGLで3Dプログラミング その4</a></td> </tr> <tr> <th class="th01">第47回</th> <td><a href="/column/jsr/047/">JOGLで3Dプログラミング その3</a></td> </tr> <tr> <th class="th01">第46回</th> <td><a href="/column/jsr/046/">JOGLで3Dプログラミング その2</a></td> </tr> <tr> <th class="th01">第45回</th> <td><a href="/column/jsr/045/">JOGLで3Dプログラミング</a></td> </tr> <tr> <th class="th01">第44回</th> <td><a href="/column/jsr/044/">JARファイルを効率的にネットワーク転送するためのPack200形式</a></td> </tr> <tr> <th class="th01">第43回</th> <td><a href="/column/jsr/043/">Early Draftで把握するEJB 3.1の新機能</a></td> </tr> <tr> <th class="th01">第42回</th> <td><a href="/column/jsr/042/">次世代の携帯端末向けJava仕様"MIDP 3.0"はどうなるか その2</a></td> </tr> <tr> <th class="th01">第41回</th> <td><a href="/column/jsr/041/">次世代の携帯端末向けJava仕様"MIDP 3.0"はどうなるか その1</a></td> </tr> <tr> <th class="th01">第40回</th> <td><a href="/column/jsr/040/">リソースアダプタによる接続の仕組み</a></td> </tr> <tr> <th class="th01">第39回</th> <td><a href="/column/jsr/039/">JCAを利用したシステム間接続</a></td> </tr> <tr> <th class="th01">第38回</th> <td><a href="/column/jsr/038/">Java EEと外部システムの接続性を支えるJCAがバージョンアップ</a></td> </tr> <tr> <th class="th01">第37回</th> <td><a href="/column/jsr/037/">Javaのモジュラリティ強化を担う"スーパーパッケージ"とは</a></td> </tr> <tr> <th class="th01">第36回</th> <td><a href="/column/jsr/036/">JSR 308対応のコンパイラを試す</a></td> </tr> <tr> <th class="th01">第35回</th> <td><a href="/column/jsr/035/">公開されたJSR 308のEarly Draftを検証する</a></td> </tr> <tr> <th class="th01">第34回</th> <td><a href="/column/jsr/034/">スクリプト言語とJavaを結びつけるJSR 223</a></td> </tr> <tr> <th class="th01">第33回</th> <td><a href="/column/jsr/033/">Java EE環境に統一されたコンポーネントモデルを提供するJSR 299 その2</a></td> </tr> <tr> <th class="th01">第32回</th> <td><a href="/column/jsr/032/">Java EE環境に統一されたコンポーネントモデルを提供するJSR 299 その1</a></td> </tr> <tr> <th class="th01">第31回</th> <td><a href="/column/jsr/031/">Javaの文法がそのまま使えるスクリプト言語"BeanShell"</a></td> </tr> <tr> <th class="th01">第30回</th> <td><a href="/column/jsr/030/">Javaアプリケーションにオブジェクトのキャッシュ機構を提供するJCache API</a></td> </tr> <tr> <th class="th01">第29回</th> <td><a href="/column/jsr/029/">Javaアプリケーションからのリソース管理を可能にするJSR 284</a></td> </tr> <tr> <th class="th01">第28回</th> <td><a href="/column/jsr/028/">XMLデータソースへの問い合わせはJSR 225で</a></td> </tr> <tr> <th class="th01">第27回</th> <td><a href="/column/jsr/027/">Portlet Specification 2.0をもっと手軽に利用する</a></td> </tr> <tr> <th class="th01">第26回</th> <td><a href="/column/jsr/026/">次期Javaポートレット仕様となるJSR 286</a></td> </tr> <tr> <th class="th01">第25回</th> <td><a href="/column/jsr/025/">JSFとポートレットをつなげるJSR 301</a></td> </tr> <tr> <th class="th01">第24回</th> <td><a href="/column/jsr/024/">Webサービス向けのポートレット仕様「WSRP」</a></td> </tr> <tr> <th class="th01">第23回</th> <td><a href="/column/jsr/023/">高い相互運用性を実現するポートレットAPI - JSR 168</a></td> </tr> <tr> <th class="th01">第22回</th> <td><a href="/column/jsr/022/">Java EE環境でタスクのスケジューリングを可能にするJSR 236</a></td> </tr> <tr> <th class="th01">第21回</th> <td><a href="/column/jsr/021/">Java EE環境でのスレッドプログラミングを可能にするJSR 237</a></td> </tr> <tr> <th class="th01">第20回</th> <td><a href="/column/jsr/020/">音声認識/合成のためのAPI - Java Speech APIとJSR 113</a></td> </tr> <tr> <th class="th01">第19回</th> <td><a href="/column/jsr/019/">JSR 291でJavaプラットフォームにダイナミックコンポーネントモデルを導入</a></td> </tr> <tr> <th class="th01">第18回</th> <td><a href="/column/jsr/018/">JAX-RSで簡単RESTful - JSR 311</a></td> </tr> <tr> <th class="th01">第17回</th> <td><a href="/column/jsr/017/">待望のServlet 3.0がJSRに登場 - JSR 315</a></td> </tr> <tr> <th class="th01">第16回</th> <td><a href="/column/jsr/016/">アノテーションを使ってバグ退治 - JSR 305</a></td> </tr> <tr> <th class="th01">第15回</th> <td><a href="/column/jsr/015/">アノテーションをさらに広い範囲で利用可能にするJSR 308</a></td> </tr> <tr> <th class="th01">第14回</th> <td><a href="/column/jsr/014/">Webアプリケーション開発の要となるか - JSF 2.0がJSRに登場</a></td> </tr> <tr> <th class="th01">第13回</th> <td><a href="/column/jsr/013/">Webサービス経由でのJMX Agentへの接続を可能にするJSR 262</a></td> </tr> <tr> <th class="th01">第12回</th> <td><a href="/column/jsr/012/">Javaアプリケーションのモジュール化をサポートするJava Module System</a></td> </tr> <tr> <th class="th01">第11回</th> <td><a href="/column/jsr/011/">"NIO.2"がやってきた - JSR 203: More New I/O APIs for the Java Platform</a></td> </tr> <tr> <th class="th01">第10回</th> <td><a href="/column/jsr/010/">JSR 295: Beans Bindingの参照実装を試す</a></td> </tr> <tr> <th class="th01">第9回</th> <td><a href="/column/jsr/009/">けっこう便利! 単位を扱うAPI -- JSR 275: Units Specification</a></td> </tr> <tr> <th class="th01">第8回</th> <td><a href="/column/jsr/008/">アノテーションでバリデーション - JSR 303: Bean Validator</a></td> </tr> <tr> <th class="th01">第7回</th> <td><a href="/column/jsr/007/">Swing開発の救世主となるか - Swing Application Framework</a></td> </tr> <tr> <th class="th01">第6回</th> <td><a href="/column/jsr/006/">JavaBeansのプロパティを同期させるバインディングAPI</a></td> </tr> <tr> <th class="th01">第5回</th> <td><a href="/column/jsr/005/">誰よりも早く"Java SE 7"を睨む</a></td> </tr> <tr> <th class="th01">第4回</th> <td><a href="/column/jsr/004/">日時情報の取り扱いを改善する JSR 310: Date and Time API</a></td> </tr> <tr> <th class="th01">第3回</th> <td><a href="/column/jsr/003/">古いAPIも進化している!? - JSR 919: JavaMail 1.4</a></td> </tr> <tr> <th class="th01">第2回</th> <td><a href="/column/jsr/002/">JSR 1 リアルタイムJava仕様</a></td> </tr> <tr> <th class="th01">第1回</th> <td><a href="/column/jsr/001/">JCPによって進められるJava関連技術の標準化</a></td> </tr> </tbody> </table> <p class="a_r btn-more"><a href="#">もっと見る</a></p> <script async src="http://n.mynv.jp/js/parts_pager.js" type="text/javascript"></script> </div> <!-- #EndEditable --> <div class="contentsBottom"> <!-- /6082618/mn.contbottom1 --> <div id='div-gpt-ad-1479185899023-0'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1479185899023-0'); }); </script> </div> <!-- /6082618/mn.contbottom2 --> <div id='div-gpt-ad-1479185899023-1'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1479185899023-1'); }); </script> </div> </div> <script> (function() { var contBottomObj = $('.contentsBottom'); var article = document.querySelector('.articleContent'); var adInsert = document.querySelector('#ad_insert'); var nextPage = document.querySelector('.btn-nextpage-03'); if (news_vars.msite) { if (nextPage) { nextPage.parentElement.insertBefore(contBottomObj[0], nextPage); contBottomObj[0].style.marginBottom = '10px'; } else{ document.querySelector('.articleContent').appendChild(contBottomObj[0]); } } if (contBottomObj && typeof(contBottomObj) != "undefined") { if (contBottomObj.find('li').length > 0) { $('.contentsBottom').addClass('microsite-lead-under-article'); } else if(contBottomObj.find('iframe').length > 0) { $('.contentsBottom').addClass('banner'); } else { $('.contentsBottom').css('margin-bottom','10px') //contBottomObj.hide(); } } })(); </script> <!-- #BeginEditable "seriesAd" --><blockquote> <h4> 提供:<a href="http://job.mynavi.jp/conts/2010/kaiin/touroku.html" target="_blank">マイナビ</a> </h4> <div class="right"> <a href="http://job.mynavi.jp/conts/2010/kaiin/touroku.html" target="_blank"><img src="http://journal.mycom.co.jp/column/jsr/images/mynavi2009.gif" alt="会員登録はこちら" width="120" height="35" border="0"></a> </div> <p>大学・大学院・短大・専門学生向けの就職情報サイト「マイナビ2010」「マイナビ2009」に今すぐ登録しよう!  大手企業からベンチャー企業までの約13,000社の企業情報を公開、エントリーが可能です。2010年卒予定の方は「マイナビ2010」に、2009年卒予定の方は「マイナビ2009」に登録してください。</p> <p>毎日コミュニケーションズは<a href="http://privacymark.jp/" target="_blank">プライバシーマーク</a>を取得しています。 </p> </blockquote><!-- #EndEditable --> </div><!--/lyt-box-01--> <!-- #BeginEditable "linkShareAffiliate" --><!-- #EndEditable --> <!-- #BeginEditable "tagList" --><!-- #EndEditable --> <div class="lyt-box-01 lyt-box-special"> <div class="clearfix"> <!-- #BeginEditable "socialBookmarkListBigButton" --><div class="str-icon-social" style="display:none;"> </div> <script> $('.str-icon-social').parent().parent().hide(); </script> <!-- #EndEditable --> </div><!--/clearfix--> </div><!--/lyt-box-01--> <!-- #BeginEditable "underArticle4pm" --><!-- #EndEditable --> <!-- #BeginEditable "linkBlog" --><!-- linkBlog --> <!-- #EndEditable --> <!-- #BeginEditable "ad_Inread" --><!-- ad_Inread --> <!-- /6082618/mn.inread --> <div id='div-gpt-ad-1466143984602-1'> <script type='text/javascript'> if(!$("body").hasClass("welcome") && $('#mn-welcome').length <= 0){ googletag.cmd.push(function() { googletag.display('div-gpt-ad-1466143984602-1'); }); } </script> </div> <script> (function () { var inread_html = $('#div-gpt-ad-1466143984602-1'); var inread_article_area = $('#str-contentsleft .articleContent div[itemprop="articleBody"]>p'); if($('.right .Photo1:last').length > 0){ var inread_index=inread_article_area.length-1; } else{ var inread_index=Math.round(inread_article_area.length/2)-1; } if(inread_index < 1)inread_index=0; var inread_article_point = inread_article_area.eq(inread_index); inread_article_area.eq(inread_index).after(inread_html); })(); </script><!-- #EndEditable --> <!-- #BeginEditable "relativeArticle" --><div id="relativeArticle"> <div class="lyt-hdg-02"><h3>関連記事</h3></div> <div class="lyt-box-02" data-click="dc-relative"> <table class="lyt-tbl-headline lyt-tbl-bg" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="sum"><a href="/news/2007/09/18/006/" onClick="news_func.gaClick(this,news_vars.ch);"><img src="/images/no_image_s.jpg"/></a></td> <td><a href="/news/2007/09/18/006/" onClick="news_func.gaClick(this,news_vars.ch);">XMLマスター新資格のベータ試験受験者を公募</a><br/>[2007/9/18]</td> </tr> <tr> <td class="sum"><a href="/news/2007/07/12/009/" onClick="news_func.gaClick(this,news_vars.ch);"><img src="/images/no_image_s.jpg"/></a></td> <td><a href="/news/2007/07/12/009/" onClick="news_func.gaClick(this,news_vars.ch);">「Oracle Database 11g」正式発表 - 30年の集大成をアピール</a><br/>[2007/7/12]</td> </tr> <tr> <td class="sum"><a href="/news/2007/07/04/033/" onClick="news_func.gaClick(this,news_vars.ch);"><img src="/images/no_image_s.jpg"/></a></td> <td><a href="/news/2007/07/04/033/" onClick="news_func.gaClick(this,news_vars.ch);">Java EE 6、仕様策定開始</a><br/>[2007/7/4]</td> </tr> <tr> <td class="sum"><a href="/news/2007/01/26/363.html" onClick="news_func.gaClick(this,news_vars.ch);"><img src="/images/no_image_s.jpg"/></a></td> <td><a href="/news/2007/01/26/363.html" onClick="news_func.gaClick(this,news_vars.ch);">待望のリリース! XQuery 1.0、XSLT 2.0そしてXPath 2.0が登場</a><br/>[2007/1/26]</td> </tr> </tbody> </table> </div> </div> <!-- #EndEditable --> <div id="ad-insert-replace"></div> <!-- #BeginEditable "relativeLink" --><div id="relativeLink"> <div class="lyt-hdg-02"><h3>関連サイト</h3></div> <div class="lyt-box-02"> <table class="lyt-tbl-01" cellpadding="0" cellspacing="0"> <tbody> <tr> <td><a rel="nofollow" href="http://jcp.org/en/jsr/detail?id=225" target="_blank">JSR 225: XQuery API for Java(XQJ)</a></td> </tr> <tr> <td><a rel="nofollow" href="http://www.w3.org/TR/xquery/" target="_blank">XQuery 1.0: An XML Query Language</a></td> </tr> <tr> <td><a rel="nofollow" href="http://www.w3.org/TR/xpath20/" target="_blank">XML Path Language (XPath) 2.0</a></td> </tr> </tbody> </table> </div> </div> <!-- #EndEditable --> <!-- #BeginEditable "underArticleAd" --><div id="ad_insert_wp" data-click="dc-ad_insert_wp_enterprise_under-article-ad" > <div class="lyt-hdg-02 lyt-btn-innerhdg"><h3>IT製品 "比較/検討" 情報</h3></div> <div class="lyt-container"> <div class="lyt-box-bnr-01"> <div class="lyt-bnrarea"> <ul class="equalize"> <li> <div class="lyt-bnr" style="position:relative;"><p> <a href="https://news.mynavi.jp/itsearch/seminar/90" target="_blank" title="改めてセキュリティのマネジメントを見直す時 複雑化する脅威、ボーダレス化する対策とは? ~「多層防御」によるセキュリティ対策セミナー~" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> <img src="https://n.mynv.jp/kouimg/tiup/itsearch/banner/20170609_120-120_seminar.jpg" style="max-width:120px;max-height:120px;"> <span style="filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;text-align:left;width:111px;position:absolute;top:0px;left:0px;border:none;padding:3px 3px 3px 6px;background-color:#0096DB;color:#fff;"><span style="font-weight:bold;"> セミナー</span><span style="float:right;">PR</span></span> </a> </p></div> <div class="lyt-txt"> <a href="https://news.mynavi.jp/itsearch/seminar/90" target="_blank" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> [7/12(水)開催]<br />多層防御による<span style="font-weight: bold;">セキュリティ</span>対策</span></a> </div> </li> <li> <div class="lyt-bnr" style="position:relative;"><p> <a href="https://news.mynavi.jp/itsearch/seminar/89" target="_blank" title="desknet's WORK SHIFT SESSION 2017 仕事を生きがいに変える" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> <img src="https://n.mynv.jp/kouimg/tiup/itsearch/banner/20170616_120-120_seminar.jpg" style="max-width:120px;max-height:120px;"> <span style="filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;text-align:left;width:111px;position:absolute;top:0px;left:0px;border:none;padding:3px 3px 3px 6px;background-color:#0096DB;color:#fff;"><span style="font-weight:bold;"> セミナー</span><span style="float:right;">PR</span></span> </a> </p></div> <div class="lyt-txt"> <a href="https://news.mynavi.jp/itsearch/seminar/89" target="_blank" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> [7/13(木)開催]<br /><span style="font-weight: bold;">働き方改革</span> - 仕事を生きがいに変える</a> </div> </li> <li> <div class="lyt-bnr" style="position:relative;"><p> <a href="http://news.mynavi.jp/ad/2017/enterprise/sios_170728/" target="_blank" title="プレミアムフライデーワンデーセミナー ~情シス担当者がプレミアムフライデーに15時退社するには!?~" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> <img src="https://n.mynv.jp/kouimg/tiup/itsearch/banner/20170626_120-120_seminar.jpg" style="max-width:120px;max-height:120px;"> <span style="filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;text-align:left;width:111px;position:absolute;top:0px;left:0px;border:none;padding:3px 3px 3px 6px;background-color:#0096DB;color:#fff;"><span style="font-weight:bold;"> セミナー</span><span style="float:right;">PR</span></span> </a> </p></div> <div class="lyt-txt"> <a href="http://news.mynavi.jp/ad/2017/enterprise/sios_170728/" target="_blank" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> [7/28(金)開催]<br />情シス担当者の<span style="font-weight: bold;">働き方改革</span></a> </div> </li> <li> <div class="lyt-bnr" style="position:relative;"><p> <a href="https://news.mynavi.jp/itsearch/seminar/91" target="_blank" title="データ解析の達人に学ぶ! Google アナリティクス「運用レポート」作成講座" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> <img src="https://n.mynv.jp/kouimg/tiup/itsearch/banner/20170614_300-250_seminar.jpg" style="max-width:120px;max-height:120px;"> <span style="filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;text-align:left;width:111px;position:absolute;top:0px;left:0px;border:none;padding:3px 3px 3px 6px;background-color:#0096DB;color:#fff;"><span style="font-weight:bold;"> セミナー</span></span> </a> </p></div> <div class="lyt-txt"> <a href="https://news.mynavi.jp/itsearch/seminar/91" target="_blank" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> [8/24(木)開催]<br /><span style="font-weight: bold;">Google アナリティクス</span> 運用レポート作成</span></a> </div> </li> <li> <div class="lyt-bnr" style="position:relative;"><p> <a href="http://news.mynavi.jp/ad/2017/enterprise/workstyle2017/" target="_blank" title="働き方改革特集" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> <img src="http://n.mynv.jp/kouimg/tiup/itsearch/banner/20170622_120-120_kikaku.jpg" style="max-width:120px;max-height:120px;"> <span style="filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;text-align:left;width:111px;position:absolute;top:0px;left:0px;border:none;padding:3px 3px 3px 6px;background-color:#142B8D;color:#fff;"> <span style="font-weight:bold;">特集</span><span style="float:right;">PR</span></span> </a> </p></div> <div class="lyt-txt"> <a href="http://news.mynavi.jp/ad/2017/enterprise/workstyle2017/" target="_blank" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> [特集]<br><span style="font-weight: bold;">働き方改革</span>特集 - ITで実現させる </a> </div> </li> <li> <div class="lyt-bnr" style="position:relative;"><p> <a href="https://news.mynavi.jp/itsearch/product/erp/299" target="_blank" title="SuperStream-NX 会計ソリューション" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> <img src="https://news.mynavi.jp/itsearch/assets/public/images/product/299/img/main_%E5%90%8D%E7%A7%B0%E6%9C%AA%E8%A8%AD%E5%AE%9A-1.jpg" style="max-width:120px;max-height:120px;"> <span style="filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;text-align:left;width:111px;position:absolute;top:0px;left:0px;border:none;padding:3px 3px 3px 6px;background-color:#3C5E66;color:#fff;font-weight:bold;"> 製品情報</span> </a> </p></div> <div class="lyt-txt"> <a href="https://news.mynavi.jp/itsearch/product/erp/299" target="_blank" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> [ERP]<br />日本の会計・人事を変える。”もっと優しく” ”もっと便利に” </div> </li> <li> <div class="lyt-bnr" style="position:relative;"><p> <a href="https://news.mynavi.jp/itsearch/product/endsecurity/114" target="_blank" title="ウイルスバスターコーポレートエディション Client / Server Suite Premium" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> <img src="https://news.mynavi.jp/itsearch/assets/public/images/product/114/img/main_TM_logo_newtag_stack_2c.jpg" style="max-width:120px;max-height:120px;"> <span style="filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;text-align:left;width:111px;position:absolute;top:0px;left:0px;border:none;padding:3px 3px 3px 6px;background-color:#3C5E66;color:#fff;font-weight:bold;"> 製品情報</span> </a> </p></div> <div class="lyt-txt"> <a href="https://news.mynavi.jp/itsearch/product/endsecurity/114" target="_blank" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> [エンドポイントセキュリティ]<br />多階層防御により強固ながら軽快なセキュリティ対策を実現 </a> </div> </li> <li> <div class="lyt-bnr" style="position:relative;"><p> <a href="https://news.mynavi.jp/itsearch/product/netsecurity/161" target="_blank" title="プライベートCA Gléas(グレアス)" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> <img src="https://news.mynavi.jp/itsearch/assets/public/images/product/161/img/main_%E6%A6%82%E5%BF%B5%E5%9B%B3_event_panel_s.png" style="max-width:120px;max-height:120px;"> <span style="filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;text-align:left;width:111px;position:absolute;top:0px;left:0px;border:none;padding:3px 3px 3px 6px;background-color:#3C5E66;color:#fff;font-weight:bold;"> 製品情報</span> </a> </p></div> <div class="lyt-txt"> <a href="https://news.mynavi.jp/itsearch/product/netsecurity/161" target="_blank" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> [ネットワークセキュリティ]<br />PC・スマホ・タブレットの安全利用を、手軽な運用で実現 </a> </div> </li> <li> <div class="lyt-bnr" style="position:relative;"><p> <a href="https://news.mynavi.jp/itsearch/product/storage/18" target="_blank" title="Nimble Storage CSシリーズ" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> <img src="https://news.mynavi.jp/itsearch/assets/public/images/product/18/img/main_NimbleStorage-front-stack-72dpi.jpg" style="max-width:120px;max-height:120px;"> <span style="filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;text-align:left;width:111px;position:absolute;top:0px;left:0px;border:none;padding:3px 3px 3px 6px;background-color:#3C5E66;color:#fff;font-weight:bold;"> 製品情報</span> </a> </p></div> <div class="lyt-txt"> <a href="https://news.mynavi.jp/itsearch/product/storage/18" target="_blank" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> [ストレージ]<br />SSDとHDDを独自技術で最適活用するアダプティブストレージ </a> </div> </li> <li> <div class="lyt-bnr" style="position:relative;"><p> <a href="https://news.mynavi.jp/itsearch/product/loadbalancer/127" target="_blank" title="Nimble Storage CSシリーズ" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> <img src="https://news.mynavi.jp/itsearch/assets/public/images/product/127/img/main_LoadBalancer-3401.png" style="max-width:120px;max-height:120px;"> <span style="filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;text-align:left;width:111px;position:absolute;top:0px;left:0px;border:none;padding:3px 3px 3px 6px;background-color:#3C5E66;color:#fff;font-weight:bold;"> 製品情報</span> </a> </p></div> <div class="lyt-txt"> <a href="https://news.mynavi.jp/itsearch/product/loadbalancer/127" target="_blank" onClick="news_func.gaClick(this,this.href,'mnClickAd');"> [負荷分散スイッチ]<br />ロードバランサ市場の最低価格に挑戦 </a> </div> </li> </ul> </div><!--/lyt-bnrarea--> <ul> <li class="lyt-link-pre"><a href="#"><span>前を見る</span></a></li> <li class="lyt-link-nxt"><a href="#"><span>次を見る</span></a></li> </ul> </div><!--/lyt-box-bnr-01--> </div><!--/lyt-container--> </div><!-- #EndEditable --> <div class="fb-recommendation"></div> <div id="googleAds"> <!-- #BeginEditable "R_ad-300tile5" --><div id="r_ad-300tile5" class="lyt-doc-01"> <!-- /6082618/mn.recl --> <div id='div-gpt-ad-1479185899023-18'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1479185899023-18'); }); </script> </div> </div><!-- #EndEditable --> <div class="double-rectangle-spacer"></div> <!-- #BeginEditable "R_ad-300tile6" --><div id="r_ad-300tile6" class="lyt-doc-01"> <!-- /6082618/mn.recr --> <div id='div-gpt-ad-1479185899023-19'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1479185899023-19'); }); </script> </div> </div><!-- #EndEditable --> </div> <div id="_popIn_recommend"></div> <!-- #BeginEditable "amazonAffiliate" --><!-- #EndEditable --> <!-- #BeginEditable "articleChHeadline" --><div id="articleChHeadline"> <div class="lyt-hdg-02"><h3>新着記事</h3></div> <div class="lyt-box-02" data-click="dc-l-headline"> <table class="lyt-tbl-01" cellpadding="0" cellspacing="0"> <tbody> <tr> <td><a href="/news/2017/06/27/285/index.html">壊れたハードドライブを修復する方法 Windows 10編</a> [21:00 6/27]</td> </tr> <tr> <td><a href="/news/2017/06/27/256/index.html">あまり知られていないVisual Studioデバッグ手法7選</a> [19:00 6/27]</td> </tr> <tr> <td><a href="/news/2017/06/27/255/index.html">東急電鉄、通勤ラッシュの緩和に向けクーポン配布</a> [18:55 6/27]</td> </tr> <tr> <td><a href="/news/2017/06/27/253/index.html">アプリ経済の発展に伴い、競争のカギとなる"開発力"</a> [18:36 6/27]</td> </tr> <tr> <td><a href="/news/2017/06/27/243/index.html">NTTコムウェア、保全・点検向けに画像認識プラットフォームのクラウド版</a> [18:14 6/27]</td> </tr> </tbody> </table> </div><!--/lyt-box-02--> </div><!--/articleChHeadline--><!-- #EndEditable --> <!-- #BeginEditable "tokusetsu-site-info" --> <!-- #EndEditable --> <!-- <div id="374715079" style="margin-bottom:10px;"> --> <script type="text/javascript"> /* if(!is_kikaku() && typeof news_vars.msite == 'undefined') { try { window._mNHandle.queue.push(function () { window._mNDetails.loadTag("374715079", "620x96", "374715079"); }); } catch (error) {} } */ </script> <!-- </div> --> <!-- #BeginEditable "ad-mini" --><div id="admini" style="margin-bottom: 10px;"> <!-- /6082618/mn.footer --> <div id='div-gpt-ad-1479185899023-4'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1479185899023-4'); }); </script> </div> </div><!-- #EndEditable --> </div><!-- /str_contentsleft--> <div id="str-contentsright"> <!-- #BeginEditable "R_ad-intel" --><!-- #EndEditable --> <!-- #BeginEditable "R_tenshokuKnowhow-enterprise" --><div class="ts"> <div class="lyt-hdg-02 lyt-btn-innerhdg"><h2>転職ノウハウ</h2></div> <div class="lyt-box-02"> <div class="bg_even item"> <div class="ts_icon"><a href="https://tenshoku.mynavi.jp/opt/joblicious/?utm_source=it01&utm_medium=news&utm_campaign=mnews&tm_content=joblicious" target="_blank"><img width="30" height="30" src="http://n.mynv.jp/include/tenshoku/images/icon_job.jpg" alt="シゴト性格・弱点が20の質問でサクッと分かる!"></a></div><div><a href="https://tenshoku.mynavi.jp/opt/joblicious/?utm_source=it01&utm_medium=news&utm_campaign=mnews&tm_content=joblicious" target="_blank">シゴト性格・弱点が20の質問でサクッと分かる!</a> </div> </div> <div class="bg_odd item"> <div class="ts_icon"><a href="https://tenshoku.mynavi.jp/it-engineer/knowhow/harukasan/01?utm_source=it02&utm_medium=news&utm_campaign=mnews&tm_content=harukasan" target="_blank"><img width="30" height="30" src="http://n.mynv.jp/include/tenshoku/images/haruka.jpg" alt="美人バーテンダー「ハルカさん」に首筋の匂いをかがれて……シュウヘイ昇天!"></a></div><div><a href="https://tenshoku.mynavi.jp/it-engineer/knowhow/harukasan/01?utm_source=it02&utm_medium=news&utm_campaign=mnews&tm_content=harukasan" target="_blank">美人バーテンダー「ハルカさん」に首筋の匂いをかがれて……<br> シュウヘイ昇天!</a> </div> </div> <div class="bg_even item"> <div class="ts_icon"><a href="https://tenshoku.mynavi.jp/knowhow/yametai?utm_source=it03&utm_medium=news&utm_campaign=mnews&tm_content=yametai" target="_blank"><img width="30" height="30" src="http://n.mynv.jp/include/tenshoku/images/icon_fyametai.jpg" alt="71%の人が「仕事を辞めたい」と思った経験あり。その理由と対処法は?"></a></div><div><a href="https://tenshoku.mynavi.jp/knowhow/yametai?utm_source=it03&utm_medium=news&utm_campaign=mnews&tm_content=yametai" target="_blank">71%の人が「仕事を辞めたい」と思った経験あり。その理由と対処法は?</a> </div> </div> <div class="bg_odd item"> <div class="ts_icon"><a href="https://tenshoku.mynavi.jp/it-engineer/knowhow/yamebijo/01?utm_source=it04&utm_medium=news&utm_campaign=mnews&tm_content=yamebijo" target="_blank"><img width="30" height="30" src="http://n.mynv.jp/include/tenshoku/images/icon_yamebijo.jpg" alt="美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み"></a></div><div><a href="https://tenshoku.mynavi.jp/it-engineer/knowhow/yamebijo/01?utm_source=it04&utm_medium=news&utm_campaign=mnews&tm_content=yamebijo" target="_blank">美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み</a> </div> </div> <div class="bg_even item"> <div class="ts_icon"><a href="https://tenshoku.mynavi.jp/it-engineer/knowhow/naoya_sushi/01/?utm_source=it05&utm_medium=news&utm_campaign=mnews&tm_content=sushi" target="_blank"><img width="30" height="30" src="http://n.mynv.jp/include/tenshoku/images/icon_sushi.jpg" alt="飲み会で探るエンジニアのホンネ #naoya_sushi 編"></a></div><div><a href="https://tenshoku.mynavi.jp/it-engineer/knowhow/naoya_sushi/01/?utm_source=it05&utm_medium=news&utm_campaign=mnews&tm_content=sushi" target="_blank">飲み会で探るエンジニアのホンネ #naoya_sushi 編</a> </div> </div> <div class="bg_odd item"> <div class="ts_icon"><a href="https://tenshoku.mynavi.jp/opt/nenshu/?utm_source=it06&utm_medium=news&utm_campaign=mnews&tm_content=nenshu" target="_blank"><img width="30" height="30" src="http://n.mynv.jp/include/tenshoku/images/nenshu.jpg" alt="今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します"></a></div><div><a href="https://tenshoku.mynavi.jp/opt/nenshu/?utm_source=it06&utm_medium=news&utm_campaign=mnews&tm_content=nenshu" target="_blank">今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します</a> </div> </div> <div class="more"><a href="http://tenshoku.mynavi.jp/knowhow/?utm_source=lc00&utm_medium=news&utm_campaign=mnews&tm_content=knowhow" target="_blank">...もっと見る</a></div><div class="tslogo">提供:<a href="http://tenshoku.mynavi.jp" target="_blank" >転職サイトはマイナビ転職</a> </div> </div> </div> <!-- #EndEditable --> <!-- #BeginEditable "R_ad-kikaku-a" --><div class="logly-tokki-a"></div> <script charset="UTF-8"> (function(){ var logly_tokki_a = { 'top': '3784660', 'business': '3826796', 'digital': '3826797', 'kurashi': '3826798', 'entertainment': '3826799' }; var genre_dir = news_vars.genre; if(!news_vars.genre || news_vars.genre == ''){genre_dir='top'}; $('.logly-tokki-a').attr('id', 'logly-lift-' + logly_tokki_a[genre_dir]); var _lgy_lw = document.createElement("script"); _lgy_lw.type = "text/javascript"; _lgy_lw.charset = "UTF-8"; _lgy_lw.async = true; _lgy_lw.src= (("https:" == document.location.protocol) ? "https://" : "http://")+"l.logly.co.jp/lift_widget.js?adspot_id=" + logly_tokki_a[genre_dir]; var _lgy_lw_0 = document.getElementsByTagName("script")[0]; _lgy_lw_0.parentNode.insertBefore(_lgy_lw, _lgy_lw_0); })(); </script><!-- #EndEditable --> <!-- #BeginEditable "R_ad-300tile2" --><div id="r_ad-300tile2" class="lyt-doc-01"> <!-- /6082618/mn.recb --> <div id='div-gpt-ad-1479185899023-16'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1479185899023-16'); }); </script> </div> </div><!-- #EndEditable --> <!-- #BeginEditable "R_accessRanking" --><!--r_access-ranking an--> <script>news_vars.time.right_date = new Date();</script> <div class="tabContainer" id="tab-aside" data-click="dc-rank"> <div class="lyt-hdg-02 lyt-btn-innerhdg"><p>人気記事</p><span class="btn"><a href="/enterprise/ranking/index.html">一覧</a></span></div> <ul class="lyt-tb-ranking tabList"> <li class="tb-ranking01 active"><a class="nClick_side_ranking_tab1" href="#r_access-ranking-01"><span>1日</span></a></li> <li class="tb-ranking02"><a class="nClick_side_ranking_tab2" href="#r_access-ranking-02"><span>1週間</span></a></li> <li class="tb-ranking03"><a class="nClick_side_ranking_tab3" href="#r_access-ranking-03"><span>1カ月</span></a></li> <li class="tb-ranking04"><a class="nClick_side_ranking_tab4" href="#r_access-ranking-04"><span>瞬間</span></a></li> </ul> <div class="lyt-box-02"> <div class="static n2Click"> <div id="r_access-ranking-01" class="tabs-items active"> <ul class="lyt-list-rank-01"> <li class="rank1"> <div class="rank"><span>1</span></div> <span><a class="nClick_side_ranking" href="/articles/2008/08/18/debug/">最初にマスターしたいVisual Studioのデバッグ機能 - 基本編</a></span> </li> <li class="rank2"> <div class="rank"><span>2</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/27/256/">あまり知られていないVisual Studioデバッグ手法7選</a></span> </li> <li class="rank3"> <div class="rank"><span>3</span></div> <span><a class="nClick_side_ranking" href="/series/zeropython/006/">ゼロからはじめるPython (6) Pythonでファイルを読み書きしよう(その1) ファイル操作基本編</a></span> </li> <li class="rank4"> <div class="rank"><span>4</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/27/154/">ソニー、AI開発用ソフト「コアライブラリ」をオープンソース化</a></span> </li> <li class="rank5"> <div class="rank"><span>5</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/27/285/">壊れたハードドライブを修復する方法 Windows 10編</a></span> </li> </ul> </div> <div id="r_access-ranking-02" class="tabs-items "> <ul class="lyt-list-rank-01"> <li class="rank1"> <div class="rank"><span>1</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/21/294/">Windows 10、秋のアップデートでSMBv1サポート終了の見通し</a></span> </li> <li class="rank2"> <div class="rank"><span>2</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/22/152/">手動でFirefoxの高速化を実施する方法</a></span> </li> <li class="rank3"> <div class="rank"><span>3</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/23/109/">D言語、GCCに追加の見通し</a></span> </li> <li class="rank4"> <div class="rank"><span>4</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/21/135/">Android Market、6月30日からAndroid 2.1より古いバージョンのサポート終了</a></span> </li> <li class="rank5"> <div class="rank"><span>5</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/24/138/">2017年版Windows向けベストフリーPDFリーダ8選</a></span> </li> </ul> </div> <div id="r_access-ranking-03" class="tabs-items "> <ul class="lyt-list-rank-01"> <li class="rank1"> <div class="rank"><span>1</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/21/294/">Windows 10、秋のアップデートでSMBv1サポート終了の見通し</a></span> </li> <li class="rank2"> <div class="rank"><span>2</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/14/197/">史上最高のFirefox「Firefox 54」が登場</a></span> </li> <li class="rank3"> <div class="rank"><span>3</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/22/152/">手動でFirefoxの高速化を実施する方法</a></span> </li> <li class="rank4"> <div class="rank"><span>4</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/23/109/">D言語、GCCに追加の見通し</a></span> </li> <li class="rank5"> <div class="rank"><span>5</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/01/265/">なぜかWindows NTが2カ月連続で増加 - 5月OSシェア</a></span> </li> </ul> </div> <div id="r_access-ranking-04" class="tabs-items "> <ul class="lyt-list-rank-01"> <li class="rank1"> <div class="rank"><span>1</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/27/256/">あまり知られていないVisual Studioデバッグ手法7選</a></span> </li> <li class="rank2"> <div class="rank"><span>2</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/27/253/">アプリ経済の発展に伴い、競争のカギとなる"開発力"</a></span> </li> <li class="rank3"> <div class="rank"><span>3</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/27/285/">壊れたハードドライブを修復する方法 Windows 10編</a></span> </li> <li class="rank4"> <div class="rank"><span>4</span></div> <span><a class="nClick_side_ranking" href="/news/2017/02/04/113/">.NETではどのプログラミング言語を使うべき?</a></span> </li> <li class="rank5"> <div class="rank"><span>5</span></div> <span><a class="nClick_side_ranking" href="/news/2017/06/07/063/">「日本はGitHubにとって重要な市場」 - Constellation Tokyoが日本初開催</a></span> </li> </ul> </div> <!-- #EndEditable --> <!-- #BeginEditable "R_accessRanking2" --><div id="r_access-ranking-04" class="tabs-items"> <ul class="lyt-list-rank-01"> <li class="rank1"> <div class="rank"><span>1</span></div> <span><a href="/news/2017/06/28/010/index.html">有村架純の姉・藍里、まさかの修正ソフト「使ってます」発言でスタジオ騒然</a></span></li> <li class="rank2"> <div class="rank"><span>2</span></div> <span><a href="/news/2017/06/27/278/index.html">小林麻耶「不思議と今まで以上に妹を感じる」- 喪失感や悲しみもつづる</a></span></li> <li class="rank3"> <div class="rank"><span>3</span></div> <span><a href="/news/2017/06/28/002/index.html">[佐倉綾音]人気声優が「マガジン」初表紙 京都で“和”グラビア</a></span></li> <li class="rank4"> <div class="rank"><span>4</span></div> <span><a href="/articles/2017/06/27/mcafee/index.html">WannaCryには真の目的があった? 単なるランサムウェアとしては稚拙 - マカフィー、2017年第1四半期の脅威動向</a></span></li> <li class="rank5"> <div class="rank"><span>5</span></div> <span><a href="/articles/2017/06/28/music2/index.html">ベストの選択は? 聴き放題の音楽配信サービスまとめ</a></span></li> </ul> </div><!--/r_access-ranking-04 --> <!-- #EndEditable --> <!-- #BeginEditable "ad_Ranking" --><!-- ad_Ranking --> </div><!--tabs--> <ul id="r_ad-access-ranking" class="lyt-list-rank-01"> <div id="wrap_ad_ranking_a"> <!-- /6082618/mn.rank1 --> <div id='div-gpt-ad-1479185899023-12'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1479185899023-12'); }); </script> </div> </div> <div id="wrap_ad_ranking_b"> <!-- /6082618/mn.rank2 --> <div id='div-gpt-ad-1479185899023-15'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1479185899023-15'); }); </script> </div> </div> </ul> <p class="lyt-link-more lyt-doc-02"><a href="/top/ranking/index.html">もっと見る</a></p> </div><!--/lyt-box-02--> </div><!--/tabContainer--> <!--/r_access-ranking--> <script> (function () { if(news_vars.ch !== 'undefined' && news_vars.ch != "") { var more_link = "/" + news_vars.ch; if(news_vars.cat !== 'undefined' && news_vars.cat != ""){more_link += "/" + news_vars.cat} $("#tab-aside .lyt-link-more.lyt-doc-02 a").attr("href", more_link + "/ranking/index.html"); } }()); rotateAsyncAd(['wrap_ad_ranking_a', 'wrap_ad_ranking_b']); </script><!-- #EndEditable --> <!-- #BeginEditable "R_topNews" --><div class="lyt-hdg-02 lyt-btn-innerhdg"><p>イチオシ記事</p></div> <div id="worth" class="lyt-box-02" data-click="dc-worth"> <ul class="str-lyt-col01"> <li class="lyt-column-02 img-l" onClick="news_func.gaClick(this,news_vars.ch);"> <div class="lyt-img"><a href="/series/zeropython/006/index.html"><img src="https://n.mynv.jp/series/zeropython/006/index.tops.jpg"></a></div> <div class="lyt-txt"> <a href="/series/zeropython/006/index.html">ゼロからはじめるPython 第6回 Pythonでファイルを読み書きしよう(その1) ファイル操作基本編</a> </div> </li> <li class="lyt-column-02 img-l" onClick="news_func.gaClick(this,news_vars.ch);"> <div class="lyt-img"><a href="/news/2017/06/24/138/index.html"><img src="https://n.mynv.jp/news/2017/06/24/138/index.tops.jpg"></a></div> <div class="lyt-txt"> <a href="/news/2017/06/24/138/index.html">2017年版Windows向けベストフリーPDFリーダ8選</a> </div> </li> <li class="lyt-column-02 img-l" onClick="news_func.gaClick(this,news_vars.ch);"> <div class="lyt-img"><a href="/news/2017/06/22/152/index.html"><img src="https://n.mynv.jp/news/2017/06/22/152/index.tops.jpg"></a></div> <div class="lyt-txt"> <a href="/news/2017/06/22/152/index.html">手動でFirefoxの高速化を実施する方法</a> </div> </li> <li class="lyt-column-02 img-l" onClick="news_func.gaClick(this,news_vars.ch);"> <div class="lyt-img"><a href="/news/2017/06/18/080/index.html"><img src="https://n.mynv.jp/news/2017/06/18/080/index.tops.jpg"></a></div> <div class="lyt-txt"> <a href="/news/2017/06/18/080/index.html">Bitcoinについて知っておくべき10の事実</a> </div> </li> <li class="lyt-column-02 img-l" onClick="news_func.gaClick(this,news_vars.ch);"> <div class="lyt-img"><a href="/news/2017/06/17/100/index.html"><img src="https://n.mynv.jp/news/2017/06/17/100/index.tops.jpg"></a></div> <div class="lyt-txt"> <a href="/news/2017/06/17/100/index.html">タブよりもスペースを使う開発者のほうが高年収 - StackOverflow</a> </div> </li> </ul> <p class="lyt-link-more lyt-doc-02"><a href="/enterprise/engineer/newsworthy/index.html">もっと見る</a></p> </div> <!--/r_top-news--> <!-- #EndEditable --> <!-- #BeginEditable "R_imageRanking" --><!-- #EndEditable --> <!-- #BeginEditable "R_digestCorner" --><!-- #EndEditable --> <!-- #BeginEditable "R_subTopHeadline" --><!--/r_sub-top-headline--> <div class="lyt-hdg-02 lyt-btn-innerhdg"><p>新着記事</p></div> <div class="lyt-box-02" id="r_sub-top-headline" data-click="dc-rst-headline"> <table class="lyt-tbl-01 lyt-tbl-bg" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <a href="/articles/2017/06/28/kekkon/index.html" onClick="news_func.gaClick(this,news_vars.ch);">結婚したら社会保険や税金はどうなる?</a><br/> [07:30 6/28] <a href="/money/index.html" class="icon-money"><span>マネー</span></a> </td> </tr> <tr> <td> <a href="/news/2017/06/28/032/index.html" onClick="news_func.gaClick(this,news_vars.ch);">「読モ」になるには?人気読モ13人を直撃</a><br/> [07:00 6/28] <a href="/entertainment/index.html" class="icon-entertainment"><span>エンタメ</span></a> </td> </tr> <tr> <td> <a href="/news/2017/06/28/031/index.html" onClick="news_func.gaClick(this,news_vars.ch);">「7日で服が破れてしまう女」が登場『ダイエット・ヴィレッジ』第5弾</a><br/> [07:00 6/28] <a href="/entertainment/index.html" class="icon-entertainment"><span>エンタメ</span></a> </td> </tr> <tr> <td> <a href="/news/2017/06/28/030/index.html" onClick="news_func.gaClick(this,news_vars.ch);">EXILE TAKAHIRO、戦慄の心霊体験を激白</a><br/> [07:00 6/28] <a href="/entertainment/index.html" class="icon-entertainment"><span>エンタメ</span></a> </td> </tr> <tr> <td> <a href="/news/2017/06/28/029/index.html" onClick="news_func.gaClick(this,news_vars.ch);">内田理央が“モテテク”習得!セクシーなボクササイズ衣装を披露</a><br/> [07:00 6/28] <a href="/entertainment/index.html" class="icon-entertainment"><span>エンタメ</span></a> </td> </tr> <tr> <td> <a href="/news/2017/06/28/028/index.html" onClick="news_func.gaClick(this,news_vars.ch);">相楽樹、伊藤淳史と『とと姉ちゃん』以来の共演!男をたぶらかす小悪魔役</a><br/> [07:00 6/28] <a href="/entertainment/index.html" class="icon-entertainment"><span>エンタメ</span></a> </td> </tr> <tr><td id="dac-feed1"> <!-- /6082618/mn.feed1 --> <div id='div-gpt-ad-1479185899023-2'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1479185899023-2'); }); </script> </div> </td></tr> </tbody> </table> <p class="lyt-link-more lyt-doc-02"><a href="/top/headline/index.html">もっと見る</a></p> </div> <!--/r_sub-top-headline--> <!-- #EndEditable --> <!-- #BeginEditable "ad_Feed" --><!-- ad_Feed --> <!-- #EndEditable --> <!-- #BeginEditable "R_ad-300tile3" --><div id="r_ad-300tile3" class="lyt-doc-01"> <!-- /6082618/mn.recc --> <div id='div-gpt-ad-1485738116644-0'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1485738116644-0'); }); </script> </div> </div><!-- #EndEditable --> <!-- #BeginEditable "R_ad-kikaku-b" --><div class="logly-tokki-b"></div> <script charset="UTF-8"> (function(){ var logly_tokki_a = { 'top': '3784661', 'business': '4079142', 'digital': '4079143', 'kurashi': '4079144', 'entertainment': '4079146' }; var genre_dir = news_vars.genre; if(!news_vars.genre || news_vars.genre == ''){genre_dir='top'}; $('.logly-tokki-b').attr('id', 'logly-lift-' + logly_tokki_a[genre_dir]); var _lgy_lw = document.createElement("script"); _lgy_lw.type = "text/javascript"; _lgy_lw.charset = "UTF-8"; _lgy_lw.async = true; _lgy_lw.src= (("https:" == document.location.protocol) ? "https://" : "http://")+"l.logly.co.jp/lift_widget.js?adspot_id=" + logly_tokki_a[genre_dir]; var _lgy_lw_0 = document.getElementsByTagName("script")[0]; _lgy_lw_0.parentNode.insertBefore(_lgy_lw, _lgy_lw_0); })(); </script> <!-- #EndEditable --> </div> </div><!--/clearfix--> <p class="lyt-link-pagetop"><a href="#">ページトップ</a></p> </div><!--/contents--> <div id="str-footer"> <!-- #BeginEditable "supportedBy" --><!-- #EndEditable --> <div class="lazy"><img src="http://n.mynv.jp/images/gray.ca.gif" data-original="http://n.mynv.jp/images/gray.ca.gif?w=footer"></div> <script> // 画像保存禁止 $(function(){ if (typeof news_vars !== "undefined" && news_vars.ch =='entertainment') { $('#str-contentsleft img').addClass('img_copyGuard'); var images = $('.img_copyGuard'); // 右クリック images.on("contextmenu",function(e){ return false; }); // ドラッグ images.mousedown( function(e){ e.preventDefault(); } ); images.mouseup( function(e){ e.preventDefault(); } ); // 長押し var timer; images.on("touchstart",function(){ timer = setTimeout(function(){ alert("画像は保存できません") },400) //return false; }) images.on("touchend",function(){ clearTimeout(timer); //return false; }) } }); (function() { var _pop = _pop || []; if (typeof news_vars !== "undefined" && typeof news_vars.cat !== "undefined") { _pop.push(["_set_read_categoryName", news_vars.cat]); } if (!is_ms_browser) { var pa = document.createElement('script'); pa.type = 'text/javascript'; pa.charset = "utf-8"; pa.async = true; pa.src = window.location.protocol + "//api.popin.cc/searchbox/mynavi_news_new.js"; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(pa, s); } })(); if(news_func.purenews()){ wdoc('http://n.mynv.jp/js/footer.ca.js?v='+f_ver.footer,'utf-8','async'); wdoc('http://n.mynv.jp/js/popinsns.js?v=28','utf-8','async'); wdoc('http://n.mynv.jp/js/pcTosp.js','utf-8','async'); wdoc('http://n.mynv.jp/js/mypage.js?v=14','utf-8','async'); wdoc('http://n.mynv.jp/js/leftcolumn.js?v=2','utf-8','async'); } wdoc('http://access.news.mynavi.jp/log/?'+escape(document.body.className+'/'+document.referrer),'utf-8','async'); news_vars.end = true; </script> </div><!--/str-footer--> <!-- #BeginEditable "ad_Gateside" --><!-- ad_Gateside --> <!-- /6082618/mn.gateside --> <div id='div-gpt-ad-1479185899023-6'> <script> if(!$("body").hasClass("welcome") && $('#mn-welcome').length <= 0){ googletag.cmd.push(function() { googletag.display('div-gpt-ad-1479185899023-6'); }); } </script> </div><!-- #EndEditable --> </div><!--/str_container--> <!-- <ul id="fmenu" data-click="dc-fmenu"> <li><a href="javascript:void(0);" onclick="$('html, body').animate({scrollTop:0});news_func.gaClick(this,news_vars.ch);"><img src="http://aw.mynv.jp/img/common/topics_head_top.jpg"></a></li> </ul> --> </body> </html>