パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

XML誕生から20年」記事へのコメント

  • by Anonymous Coward on 2018年02月11日 20時02分 (#3359993)

    XMLとその関連技術は素晴らしすぎて、20年後の現在もかなり完成されているように見える。
    今はJSON好きが多いけれど、XMLより劣る点は多い。
    現在でもつかわれるプロトコルとして、SMTPとかのメール周りは改良点は多数あるし(参考 [srad.jp])、HTMLは実際手を入れられているが再設計するならかなり良くなるだろう。
    その点でXMLをより良くするなら、今の視点で設計するなら、というのはテーマとして面白いと思う。

    自分としては、

    • 属性を要素に展開する標準的な手法の規定(XAMLではある)。
    • 一般のバイナリを記述できるスキーマ。XMLと相互変換可能(XMLのバイナリ化は既にある [wikipedia.org])。
    • およそあらゆる言語に変換できるXMLプログラミング言語。
    • 属性の名前空間がややこしいのでそこら辺の改良。

    こんな所かな。
    あればいいなと思ったら大抵あるのがXMLのすごい所。

    • XMLの「閉じタグにタグ名を書く」のは何とかならんもんなんですかね
      </>
      で良いんだったらだいぶ心穏やかになるな

      名前空間が使いにくいのもちょっと微妙だが機能が高いので仕方ないのかな…

      親コメント
      • by Anonymous Coward

        XMLの基となったSGMLでは出来ましたよね、空終了タグ (empty end tag) [kikakurui.com]。
        と言っても実際に使われてるのは見たことないので、
        規格上だけの存在だったからXMLではばっさりカットされてしまったのかもしれませんが。

    • > およそあらゆる言語に変換できるXMLプログラミング言語。

      IDLからCORBAとかのスタブつくるみたく、XMLスキーマからスタブ...は今でもそこそこある気はするけど、XMLでプログラム自体を書いて変換、なのかな。

      それはもうメタ言語として別にしたほうがたぶんいいと思う...

      --
      M-FalconSky (暑いか寒い)
      親コメント
      • by Anonymous Coward

        XSLT なんてまさに XML でプログラム書いてるようなものだが、超めんどくさい。C言語の "=",",","(",")","{","}" などなどに相当するものを全部 element で囲って書くはめになるんだから。XSLT 2.0 以降では、"if ... then ... else ..." を書ける attribute も登場したのは、みんな「めんどくせー」、って思ったせいじゃないかしら。

    • SGML「」

      HTMLは実際のところ、XML化を諦めてる。
      SGML由来のdtdより柔軟になったとは言え、Schemaを理解してまともに書ける技術者は限られている。指摘にもあるけどnamespaceは素晴らしい仕組みだが、すごく分かりにくいです。
      交換データ形式としては優れていても、人が直接書くものじゃ無いよ。

      親コメント
      • by Anonymous Coward

        現在のHTMLのパーサーはチューリング機械が必要なので設計の美しさなんて宇宙の彼方に放り投げてる

    • by Anonymous Coward on 2018年02月12日 16時04分 (#3360214)

      バイナリに対するXMLとして、EBMLというのもあります。

      ところで、JSONにもXMLのようなnamespaceなどを扱えるJSON-LDというものがあります。それを見ていると、JSONのようなファイルフォーマットが担うような機能は限定して、必要に応じてJSON-LDのような拡張を行うのが良いような気もします。実際、JSON-LDが必要なケースはJSON全体の利用ケースに比べて限定的ですから。
      私はJSONの機能は更に削減できるとさえ考えます。例えば、配列だけで十分なんじゃないかと。例えば、

      ((key0 value0)
        (key1 (value10 value11 value 12))
        (key2 ((key20 value20)
                      (key21 (value210 value211 value222))))

      # 待てよ、もしかするとこれでプログラムも書けるのでは?

      親コメント
      • by sadakenbot (48311) on 2018年02月12日 17時48分 (#3360247) ホームページ 日記

        ((key0 value0)
            (key1 (value10 value11 value 12))
            (key2 ((key20 value20)
                                        (key21 (value210 value211 value222))))

        Syntax Error。閉じ括弧が一つ足らないね。

        親コメント
        • by Anonymous Coward on 2018年02月12日 22時23分 (#3360364)

          ガクガクブルブル(((( ;゚Д゚))) つ)
          僕の一個あげるよ

          親コメント
        • by Anonymous Coward

          閉じカッコがたくさん並んで醜いし対応ミスもあるから、']'1つで全部閉じるってのはどうでしょうか?

          • by Anonymous Coward

            それ、スーパー括弧閉じにするよりVectorにした方が良くないですか〜ってEDN記法見て思うの〜
            (a b c ) => list
            [ a b c ] => Vector(配列)
            {:keywords value} => マップ

            clojureの記法だけどこれ良く出来てると思うの。
            これを元にHTMLもXMLもまとめて扱ってるhiccup記法とかすごいとおもうのだけどなぁ。

            #SGML,XML,HTMLのタグ記法ってLispの亜種なんだよね(開始の部分で何を意味するか指定してるけどそれ括弧の直後に書いてもいいじゃんよー)

      • by Anonymous Coward

        key valueと要素数二つの配列をどうやって区別すんの?

        • by Anonymous Coward

          区別しない

          Key Value Pairだけが存在して、配列はKeyが先頭要素でValueに2番目以降の要素が入った再帰的なKVPで代用する

          お、何か画期的なプログラミング言語ができるような気がしてきたぞ

          • by Anonymous Coward
            LispのS式じゃね?
            • by Anonymous Coward

              > LispのS式じゃね?

              S式の劣化コピーですね

              配列と言った時点でS式が理解できてないし
              ネタとしてもイマイチ

              • by Anonymous Coward

                JSONですから(嘘つけ)

              • by Anonymous Coward

                今更のツッコミも野暮だし全部グダグダ

      • by Anonymous Coward

        ASN.1の何が不満なんだ

        • by Anonymous Coward

          1. 理解できない
          2. 本が高い
          3. OSI臭い
          # もちろんジョークだ

          • by Anonymous Coward

            XMLにもそのまま当てはまるような(OSIはW3Cあたりに置き換えるとして)

            • by Anonymous Coward

              ASN.1見たことないだろ。もちろん、転送構文も含めて。

      • by Anonymous Coward

        それは何のS式ですか?

    • XMLそのものの改良や再設計と、XSLTやXAMLのようにXMLを使って実現したいものは分けた方がいいような。

      およそあらゆる言語に変換できるXMLプログラミング言語

      は後者だよね。

      --
      うじゃうじゃ
      親コメント
    • by Anonymous Coward on 2018年02月12日 17時44分 (#3360243)

      Excelファイルでいいじゃん。。。。。。。。。。

      親コメント
      • by Anonymous Coward

        客「結局はcsv出力でいきましょう」

      • by Anonymous Coward

        そのExcelファイルも、今やXMLが中で使われている時代 (Office Open XML)。

        個人的には、Office 2003の独自XML形式が好きだったんだけどなあ。Office 2007以降、ダブルクリックで各Officeアプリで開く関連づけがなくなったのが残念。.doc、.docx、.xls、.xlsxなどメインの形式より低機能な代わりに比較的プログラムで生成しやすく、しかもOfficeアプリに関連づけられていたので、他人にもMS Office形式のファイルと称して渡せるという都合のいいデータ形式だった。

    • by Anonymous Coward

      例えるならMicrosoft Officeのようなものか?

    • by Anonymous Coward

      HTML高速な(かつ安定した)DOMパーサが実装できるから、その恩恵も大きいと思う。
      あとXPathを使いこなすと便利。

      • by Anonymous Coward

        XPathはかなり便利な良い仕様よね。
        XPointerは難しすぎたが。。。

    • by Anonymous Coward

      「charset が出現するまでは必ず ASCII コード」という規約が欲しい
      いや、BOM なし UTF-16 な XML なんて存在しないならどうでもいいのですが。

      # オレオレパーサを書くのが一番悪いってのはわかっているのですが

      • by Anonymous Coward

        いや、それマトモにテキストエディタで開けないから駄目だろ

        • by Anonymous Coward

          同じ理由で大きなバイナリを埋め込む仕組みとかの拡張も無理そう。
          PDFとか基本テキストベースのはずが読める気がしない。

        • by Anonymous Coward

          途中で文字コードが変わるテキストデータの話ではなく、文字コードの判別方法に関してです。

          BOM つき UTF-16→わかる
          7bit 領域は ASCII 互換→charset の結果でわかる(SJIS とか UTF-8 とか)
          BOM なし UTF-16→ビッグエンディアンの UTF-16 と判別して読み込む(が、どう判別する?)

          2 番目まで処理してパースに失敗したら 3 番目処理して、というのが現実的な解でしょうか?
          (これだけのために文字コード判別のライブラリとか組み込みたくないので)

          • BOMとか見るなら、頭2バイト見ればわかるんじゃないの?

            0x3c 0x3f ならASCII互換の「<?」なのでencoding指定まで読み進める
            0xFE 0xFF ならUTF-16のBig Endian
            0xFF 0xFE ならUTF-16またはUTF-32のLIttle Endian(UTF-16とUTF-32の確定ができないので4byte目まで読む必要がある)
            0x00 0x00 ならUTF-32のBig Endianの可能性が高い(4byte目まで見ないとBOMか確定はできない)
            0xEF 0xBB BOMありUTF-8(厳密には3byte目の0xBFまでがBOMだけど)
            0x00 0x3c ならUTF-16のBE(BOMなし)
            0x3c 0x00 ならUTF-16またはUTF-32のLE
            それ以外ならXMLではない

            という判定をすれば事足りるよねっていう?

            親コメント
            • by Anonymous Coward

              ここまで網羅しておいて、どうして2バイトと口走ったw
              4バイトで決定できるで良かったのでは。

      • by Anonymous Coward

        HTML 5.1ならば、文字コードはutf-8固定になるようですがね〜

    • by Anonymous Coward

      > XMLより劣る点は多い。

      XMLは必要とされてない機能に無駄にコストを掛けてたってことだよ。

      • by Anonymous Coward

        JSONはよく必要とされるものまで足りないけどな。
        コメントとか、標準化されたパス書式とかスキーマ定義とか(JSONの方が表現できる型が多いのに)。

        通信データにはJSONが向いてるけど、データ処理ではXMLが扱い易いシーンも多い。
        JSONにすりゃいいってもんじゃないのに、何でもJSONじゃなきゃ嫌がる人はちょっと困る。

        • XMLはXPathとかNodeとか周辺まで仕様で決まってますからね
          そこまでがXMLなのか、フォーマットだけの話なのか

          とはいえ周り全部なければ認めないとかいう事になると実装コストが上がるので、
          初めからそうだったらJSONは普及しなかったのかもしれないなー

          親コメント

「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常

処理中...