Show
Ignore:
Timestamp:
02/21/08 05:29:38 (9 months ago)
Author:
snj14
Message:

lang/javascript/userscripts/ldrize/ldrize.user.js: 名前空間の処理を行うように.XSLTで変なことしなくてよくなった.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/userscripts/ldrize/ldrize.user.js

    r6778 r7011  
    77 
    88var SCRIPT_NAME     = "LDRize" 
    9 var SCRIPT_VERSION  = "2008.02.16" 
     9var SCRIPT_VERSION  = "2008.02.21" 
    1010var SCRIPT_URL      = "http://userscripts.org/scripts/show/11562" 
    1111 
     
    2323//  
    2424// 抽出するRDFで使う語彙の名前空間 
    25 //  http://purl.com/net/ldrize/ns# 
     25//  http://purl.org/net/ldrize/ns# 
    2626//  まだRDFSやOWLを使ったRDFで書いてあるわけでなくて,普通にXHTMLで書いてあるだけ 
    2727//  
     
    3131//  
    3232// XSLT 
    33 //  とりあえずいくつか書いてみたやつへのリンクをhttp://purl.com/net/ldrize/ns#に貼った 
     33//  とりあえずいくつか書いてみたXSLTへのリンクをhttp://purl.org/net/ldrize/ns#に貼った 
    3434//  これらもCodeReposにおいたほうがいいかな…? 
    35 //  
    3635//  
    3736// 問題点: 
     
    3938// http://www.w3.org/2003/g/data-view以外にもGRDDLで利用できるprofile(URL)があるのを考慮できてない 
    4039// e.g. http://purl.org/net/ns/metaprof 
    41 // 
    42 // XSLTの変換のやり方が多分まずい. 
    43 // XSLT側でxhtmlの名前空間を指定した場合に上手くいかない. 
    44 // でも名前空間を省略すると上手くいく. 
    45 // これは本来,名前空間を省略した場合に失敗しないといけない. 
    46 // 単体で使う場合は問題ないが他のGRDDL利用エージェントが困る. 
    4740 
    4841// ------------------------------------------------------------------ 
     
    129122 
    130123if(!window.Minibuffer) return; 
     124var NAMESPACE = { 
     125  h:        "http://www.w3.org/1999/xhtml" 
     126  , rdf:    "http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
     127  , ldrize: "http://purl.org/net/ldrize/ns#" 
     128} 
    131129 
    132130var VOCABULARY = ["name", "domain", "structuredUriRegEx", "disable", "paragraph", "article", "section", "view", "link", "focus", "stripe", "height"]; 
     
    980978} 
    981979 
    982 var Articles = new Class(); 
    983 Articles.prototype = Object.extend(new Paragraphes(), { 
    984     programmingLanguage: '', 
    985     initialize: function(name, hobby, programmingLanguage) { 
    986         Human.prototype.initialize.apply(this, [name, hobby]); 
    987         this.programmingLanguage = programmingLanguage; 
    988     }, 
    989     toString: function() { 
    990         var array = []; 
    991         array.push(Human.prototype.toString.apply(this), ', プログラミング言語:', this.programmingLanguage || 'なし'); 
    992         return array.join(''); 
    993     } 
    994 }); 
    995  
    996980var Paragraph = new Class(); 
    997981Paragraph.prototype = { 
     
    11031087                var rdf = processor.transformToDocument(document); 
    11041088                // log('string', (new XMLSerializer()).serializeToString(rdf)); 
    1105                 var parameter = $X('//*[namespace-uri() = "http://purl.org/net/ldrize/ns#"]', rdf); 
     1089                var parameter = $X('.//ldrize:*', {context:rdf, ns:NAMESPACE}); 
    11061090                var result = {}; 
    11071091                for(var i=0; parameter.length>i; i++){ 
     
    11351119         
    11361120        function getGRDDLData(cached_siteinfo){ 
    1137                 var head = $X('//head[@profile]'); 
     1121                var head = $X('//h:head[@profile]', {ns:NAMESPACE}); 
    11381122                if(!head.length) { 
    11391123                        with(D()){wait(0).next(function(arg){d.fail()})} 
     
    11451129                var links = []; 
    11461130                // class="LDRize"が付いていれば優先的に 
    1147                 links = $X('//link[@rel="transformation" and contains(concat(" ",@class," "), " LDRize ")]'); 
     1131                links = $X('//h:link[@rel="transformation" and contains(concat(" ",@class," "), " LDRize ")]', {ns:NAMESPACE}); 
    11481132                if(!links.length){ 
    1149                         links = $X('//link[@rel="transformation"]'); 
     1133                        links = $X('//h:link[@rel="transformation"]', {ns:NAMESPACE}); 
    11501134                } 
    11511135                if(!links.length) {