Kashiwa Hangさんにまた巡り合えた話

この前の土曜日(3/2)に友達と酒を飲むために仙台に行ったんですが、びっくり仰天3年前柏駅で一聞き惚れしたKashiwa Hangさんに駅前で遭遇しました(過去についての詳細はこちら)。恐れ多くも声を掛けさせていただき、お話を伺ったところ、なんでも前日、仙台の料理屋でライブを行っていたそうで、その翌日に、仙台の北にある宮城県栗原市でも演奏をする予定になっていて、それまでの待ち時間に路上ライブでも、ということでたまたま駅前にいらっしゃったのだそうです。なんという偶然!

僕はと言えばお話をしている間ずっとキョドってるやばい人になっていましたが、とにかく応援してます、これからも頑張って下さい、といったメッセージを拙いながらも伝え、3年前に買いそびれてしまったCDを買わせていただきました。大変有難かったです。
“Kashiwa Hangさんにまた巡り合えた話” の続きを読む

労働基準法のXMLをHTMLにしてみた(2)+α

前回のは各号列記が出力されなかったり色々問題があったので修正した。恐らくXSLTの肝であろうxsl:templateを活用したので割とコードがすっきりした(はず)。あとなんとなくバージョンを3.0にした。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" exclude-result-prefixes="xsl xs fn">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:apply-templates select="Law/LawBody"/>
</xsl:template>
<xsl:template match="Law/LawBody">
  <html>
    <head>
      <title><xsl:value-of select="LawTitle"/></title>
      <link href="sample.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
      <h1><xsl:value-of select="LawTitle"/></h1>
      <div class="TOC">
        <xsl:for-each select="TOC/TOCChapter">
          <a>
            <xsl:attribute name="href">#c<xsl:value-of select="@Num"/></xsl:attribute>
            <xsl:value-of select="ChapterTitle"/>
          </a>
          <xsl:if test="count(TOCSection)!=0">
          <xsl:for-each select="TOCSection">
            <a>
              <xsl:attribute name="href">#c<xsl:value-of select="../@Num"/>s<xsl:value-of select="@Num"/></xsl:attribute>
              <xsl:attribute name="class">section</xsl:attribute>
              <xsl:value-of select="SectionTitle"/>
            </a>
          </xsl:for-each>
          </xsl:if>
        </xsl:for-each>
      </div>
      <xsl:for-each select="MainProvision/Chapter">
        <div class="chapter">
          <h3>
            <xsl:attribute name="id">c<xsl:value-of select="@Num"/></xsl:attribute>
            <xsl:value-of select="ChapterTitle"/>
          </h3>
          <xsl:choose>
          <xsl:when test="count(Section)=0">
            <xsl:apply-templates select="Article"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:apply-templates select="Section"/>
          </xsl:otherwise>
          </xsl:choose>
        </div>
      </xsl:for-each>
      
    </body>
  </html>
</xsl:template>


<xsl:template match="Section">
  <div class="section">
    <h4 class="section_title">
      <xsl:attribute name="id">c<xsl:value-of select="../@Num"/>s<xsl:value-of select="@Num"/></xsl:attribute>
      <xsl:value-of select="SectionTitle"/>
    </h4>
    <xsl:apply-templates select="Article"/>
  </div>
</xsl:template>

<xsl:template match="Article">
  <div class="article">
    <h6 class="article_title"><xsl:value-of select="ArticleTitle"/></h6>
    <span class="caption"><xsl:value-of select="ArticleCaption"/></span>
    <xsl:apply-templates select="Paragraph"/>
  </div>
</xsl:template>

<xsl:template match="Paragraph">
  <p class="paragraph">
  <xsl:value-of select="ParagraphNum"/> 
  <xsl:value-of select="ParagraphSentence/Sentence"/>
  </p>
  <xsl:apply-templates select="Item"/>
</xsl:template>

<xsl:template match="Item">
  <p class="item">
  <xsl:value-of select="ItemTitle"/> 
  <xsl:value-of select="ItemSentence/Sentence"/>
  <xsl:apply-templates select="ItemSentence/Column"/>
  </p>
</xsl:template>

<xsl:template match="ItemSentence/Column"> 
  <xsl:value-of select="Sentence"/> 
</xsl:template>
</xsl:stylesheet>

結果がこちら(相変わらず環境によって見れなかったりするのでhtmlで)。

ついでなので同じXSLファイルで労働安全衛生法も変換。結果はこちら

章、節だけの法令ならこれで問題なく変換できるのだが、編、章、節、款といった枝分かれがあったりなかったりする木構造になるとやや面倒になる。特に民法や労働安全衛生規則などがそうなのだが、それらについては次回にて。

労働基準法のXMLをHTMLにしてみた

総務省でe-Gov(イーガブ)という「電子政府の総合窓口」なるものが運営されている。

ここでは法令検索ができて、法令の全文が閲覧できるだけでなく、有難いことにXMLデータもダウンロードすることができる(二次利用も自由とのこと)。こっからいい感じに法令をデータベース化して容易に条文検索できるツール用意すれば最高なんじゃねって思ってはいるのだが、今のところそこまでの技量がないので、ひとまずe-Govの表示よりマシなHTML形式のデータが出力できればいいかな~ってことで、ちょっと前にXSLT1eXtensible Stylesheet Language Transformationの略らしいをさくっと勉強して、提供されているXMLスキーマを参考にコードを書いた(transform.xsl)。 “労働基準法のXMLをHTMLにしてみた” の続きを読む

正義の味方は必ず傷付くものだという話

労働基準監督官の仕事は結構ストレスのたまる仕事である。どうしてなのかとかはここではいちいち言わないが、とりあえず、労働基準監督官は、労働者の味方とか会社の敵とかそういう以前にまず、労働基準法令の番人であり、そしてそれ以上ではない、とだけ言って、暗にその苦労を仄めかすに留めることとする。

ちょっと色々あって(そしてこれから色々起きるので)、いつもの通り凹んでいたのだが、そんな時ふと、今は亡きやなせたかしの言っていたことを思い出した。

やなせたかし氏 日本人の正義とは困った人にパン差し出すこと(NEWSポストセブン)

正義とは実は簡単なことなのです。困っている人を助けること。ひもじい思いをしている人に、パンの一切れを差し出す行為を「正義」と呼ぶのです。なにも相手の国にミサイルを撃ち込んだり、国家を転覆させようと大きなことを企てる必要はありません。アメリカにはアメリカの“正義”があり、フセインにはフセインの“正義”がある。アラブにも、イスラエルにもお互いの“正義”がある。つまりこれらの“正義”は立場によって変わる。でも困っている人、飢えている人に食べ物を差し出す行為は、立場が変わっても国が違っても「正しいこと」には変わりません。絶対的な正義なのです。

正義って相手を倒すことじゃないんですよ。

正義を行う人は自分が傷つくことも覚悟しなくてはいけない。

心に響く世界最弱のヒーロー アンパンマンの正義 ~やなせたかしさんに聞く ― 自分も傷つかずに、正義を行うことはできない、という思い(日経トレンディネット)

もう一つの意味は、自分の顔をちぎって渡すヒーローということ。なぜかというと、正義を行うときには、自分が傷つかずにはできないという考えが、ぼくの中にあるからです。つまり、自分はまったく傷つかないままで、正義を行うことは非常に難しいということなんです。

正義というのは、そうした覚悟なしにはできないんです。もっと簡単なたとえでいうと、あなたが、電車に乗っていて隣の人がタバコを吸っていたとします。「ここは禁煙ですからタバコを吸ってはいけませんよ」と言うと「なんだテメェ、余計なことを言うな」と殴られることだってあるんです。(…)何故殴られたのか、それは正義を行ったから。正しいことをする場合、必ず報いられるかというと、そんなことはなくて、逆に傷ついてしまうこともあるんです。傷つくかもしれないけれど、それでもやらなければいけないときがある。

そして、正義というのは、非常に情けないところもある。ある会社が不正をしていたとします。社員がそれを内部告発すると、会社の不正はあばかれて正されますが、その告発した人はどうなるか。正しいことをしたのに、あいつは密告するといわれて、全部の業者から阻害されてしまうかもしれません。それで、まったく仕事がなくなってしまった人がいます。

ですから、アンパンマンは、顔を渡すたびにエネルギーが落ちていくんです。落ちていくけれども、それをせずにはいられないんですね。自分が犠牲になることもあるけれど、困っている人を助けずにはいられない。そういうことなんです。