はじめに
XMLマークアップ言語が発明されて以来、それは私たちの日常のコンピューター生活のあらゆる分野に浸透しました。 私たちは彼にほとんど気付きません。 または少なくとも熱心にふりをする。 ここでは、構成データの保存に使用され、ここではリモートプロシージャコール(XML RPC)に使用されます。 そして、ここでXHTMLの基礎になりました。
世界を変えたこれらの3つの文字は、愛されるか嫌われる可能性があります。 しかし、少なくとも1つのIT分野では、XMLが革命に匹敵する規模で革命を起こしているだけでなく、揺るぎない基盤にもなっています。 ドキュメントの作成と保守について話している。
DocBookまたはfb2について聞いたことがありますか?
重要:この記事にはグラフィック素材が含まれています。XMLドキュメント。 なんで?
XMLでのドキュメントの保存とそれに続くサポートには、従来のツール(MS Wordなど)に比べていくつかの利点があります。 それらについて簡単に説明しましょう。
オープンフォーマット
XMLベースのデータ形式は、何らかの形で開かれています。 いくつかの方法で開きます。
- XMLドキュメントの内容をすばやく(!)調べる必要がある場合はどうでしょうか。 これは、MicrosoftのバイナリBLOBではありません。 したがって、最初に利用可能なテキストエディタでドキュメントを開くことほど簡単なことはありません。 高度なEmacsであろうと、メモ帳を中心に禁欲的であろうと。
- ちょっとした魔法はどうですか? 既存のツールを使用すると、ドキュメントを他の形式のXMLにいつでも変換できます。 PDFまたは他のXMLで言います。
- すでに存在するものでは不十分な場合があります。 私たちが自動車を扱っていて、その貨物の品質に満足できなくなった場合、そのチューニングまたは「鉄の馬」のより完全なモデルの検索のいずれかに対処する必要があります。 XMLのドキュメントの場合、ほとんどの場合、その後の(そして複数の)拡張のために手が離されます。
XMLディクショナリに制限がないため、特定の特殊なXML言語を作成でき、構文の一般性により、同じプログラムでXMLで表される任意のデータを処理できます。
構造化
XMLは、この混乱の世界に少なくとも何らかの秩序をもたらすために生まれました。 「構造」と「シーケンス」の概念は、形式の基本的な基盤の一部です。 文書の形成に関する一連のかなり厳格なルールのおかげで、XMLを使用して表されるデータの構造化が保証されます。
コンテンツとデザインの分離
これは、同じ文書を鈍い学術書のスタイルと陽気な光沢のある雑誌の両方で印刷できる場合に非常に便利です。 XMLでドキュメントを作成する場合、左または右のインデントを心配する必要はありません。 レベルにこれを任せてください。そうすれば、ライターがドキュメントの構造の形成と内容で満たすことになります。
コンテンツの機能を再利用する
XMLを建築用レンガと比較すると、それに関連する技術は安全にセメントモルタルと呼ぶことができます。 ここのセメントは、XIncludeまたはエンティティの標準メカニズム(
エンティティ 、外部と内部の両方)です。 そのため、たとえば、それらのおかげで、ドキュメントは、クレイジーな量の他のドキュメントまたはその個々の部分から形成されます。 構成ブロックの1つでの変更は、最終ドキュメントにすぐに反映されます。 コピーアンドペーストはもう必要ありません! 本当に分割して支配します。
共同ドキュメント開発
複数のファイル(自給自足のドキュメントまたは単にテキストの断片)からドキュメントの最終バージョンをアセンブルする機能により、チームの各メンバーは、編集されたドキュメントに衝突を起こすことなく、他の人を邪魔することなく、その瞬間に自分の「レンガ」だけで作業することができます。
また、あらゆる言語でドキュメントを作成できることも素晴らしいことです。 XMLは、そのままでUnicodeをサポートします。 XMLは多国籍企業にとっては面倒なものではなく、むしろそれらの解決に役立ちます。
また、これに加えて、XMLドキュメントはバージョン管理システムに非常に適切に保存されます。
多くの既製のツールとテクノロジー
DTD / XML Schema / RelaxNGを使用して、指定された構造との適合性(
注:「検証」スラング )を
確認できます。 必要に応じて、XSLTを使用して、ドキュメントを異なる構造のXMLに変換します。 そして最後に、XPathを使用してドキュメントの最も興味深い重要な部分を選択すると便利な場合があります。
そして、それはすべて、すでにここでそして今、ほとんどすべての人に利用可能です
* 。 そして、XMLに関連するほとんどすべてのタスクのために、すぐに使用できるツールまたはテクノロジーを見つけることができます。
*このトピックに精通している各ユーザー。
これらの品質のおかげで、XML文書を作成およびサポートするための技術は、知識を保存するために非常に広く使用されています。
最も有名な形式
DocBookは、技術文書として広く使用されている最初の形式の1つです。 既知の恒常性がLinux環境で使用されます。 たとえば、GTK +およびGNOMEライブラリのAPIドキュメントを生成するために使用されます。
S1000Dは、航空機および造船の分野における技術知識を保存するための標準です。 NATOと民間航空会社(ロシアを含む)の両方でアプリケーションが見つかりました。
fb2(
FictionBook )は、電子書籍の一般的なプレゼンテーション形式です。 確かに、fb2をサポートする電子リーダーの所有者は、fb2の使用の利点を評価することができました。
DITAは、「Blue Giant」(IBM)によって開発された完全な拡張可能(素晴らしい後方互換性!)アーキテクチャであり、技術文書の開発、生産、および配信の全サイクルをカバーしています。 ITだけでなく、さまざまな活動分野での使用に簡単に適合します。
Syntext Serna
これらすべてにより、ドキュメントがハッカーやプログラマーによって書かれていないことは注目に値します。 彼らはすべてよりもはるかに少ない頻度でそれを行います。 そして、それは適切な言語知識と経験を持っている比較的普通のコンピューターユーザーによって書かれています。 なぜ彼らは、テキストのいくつかの文を書き、いくつかのタグを作成し、それらの正確性をチェックし、また要素の正しいネストを常に監視するのでしょうか?
そのため、ツールに意味があり、XMLを扱うことのすべての困難を隠し、同時にXMLのすべての利点を明確に強調しました。 これらのエディターの1つはSyntext Serna
です 。これ
は、XML形式の技術
文書 を作成およびサポートする
ための ビジュアル (
WYSIWYG )
XMLプロセッサー です 。
隣接する半球でSyntext Sernaがかなり普及しているにもかかわらず、ロシアのこのXMLエディターについてはほとんど聞いていません。 私にとって、Sernaは発見であるだけでなく、本当に好きなエディター
*にもなりました。 他のすべてに対して、私はSyntext Sernaを素晴らしいソフトウェア製品と考えています。 そして、ここに理由があります。
*したがって、たとえば、私はDocBookを非常に積極的に使用して、ソフトウェアの技術的なタスクを策定しています。 そして、私のお気に入りのEmacsを他のすべてに使用しているにもかかわらず、Sernaで作成する方がはるかに効率的です。一般的な特徴
クロスプラットフォーム
Nokiaライブラリ(Trolltech)Qtを使用して設計されています。 これにより、次のプラットフォームで非常にうまく機能します。
- 窓
- GNU / Linux
- Mac OS X
- さらに、Solaris / SPARCも。
注:以降、グラフィック素材は開発者のサイトから取得されます。 この資料の執筆時点で、完全に真実であることを保証します。
これは、たとえばLinuxでは次のように見えます。

そして、Mac OS Xで彼が次のようになることを妨げるものはほとんどありません。

無料でオープンソース
私はソフトウェアがフリーであるべきだという考えよりももっとコミットしています。 喜んでいないわけではありませんが、エディターの開発者は同様の意見を固守していることに注意してください。
Syntext Sernaには、オープンソース(
Serna Free )とエンタープライズ(
Serna Enterprise )の2つのエディションがあります。 Serna Freeは、
GNU GPL v3ライセンスの下で入手および配布できます。 したがって、Serna Enterpriseには一定量のグリーンペーパーノートが必要であり、閉鎖されます。 無料版のソースコードは、開発者のサイトでかなり入手可能です。
ビジネスバージョンは、企業ユーザーにとってより興味深いグッズの存在を除き、実質的にオープンバージョンと変わりません。 詳細は公式ウェブサイトで見つけることができます。
あなたが見るものはあなたが得るもの(WYSIWYG)
Sernaでドキュメントを作成するライターは、理論的には、XMLについて知る必要さえありません。 さらに、タグのセットを手動で処理します。 彼は、文書が要素で構成される固定構造を持っていることを単純に理解するだけで十分です。 要素には名前だけでなく、セマンティクスもあります。
さらに、作成されたテキストは、文字やフレーズのつまらない連続した布として作家に表示されません。 編集中のドキュメントのタイプに応じて、テキストの各要素はその本質に従って視覚的にフォーマットされます。 ライターが入力したテキストが読者の注意を引くことを目的とする場合(簡単に言えば、<b />別名「太字フォント」で「ラップ」)、[テキスト]は太字で強調表示されます。 また、インターネット上の特定のリソース(DITAの場合は<a/>)を参照する場合、リンクとして表示されるだけでなく、クリック可能になります(エディター自体およびそこから生成されたPDFの両方から)。
重要:ドキュメントは、オンザフライXSLT / XSL(-FO)スタイルを使用してエディターに表示されます。 したがって、一度XSLT / XSL(-FO)スタイルを作成すると、エディター自体での表示と、PDFからの生成の両方に使用できます。 そして、これは、その後、エディターの機能を拡張するための実質的に尽きることのない可能性を保持します
* 。
*そして、これはすべての可能な方向で設定されます(機能の拡張を参照 )。
主要な形式のサポート
デフォルトでは、Syntext SernaはDocBook、DITA、XHTML、TEI P4、NITFの「すぐに使える」形式をサポートしています。


重要:ただし、「コア」とは、これがすべて制限されていることを意味するものではありません。 Sernaは、カスタムXML形式のサポートを追加するための優れたツールを提供します。
要素に関するコンテキストヘルプ
ドキュメント開発者は、ドキュメントの構造を完全に覚えている必要はありません。 次に、要素の組み込みのコンテキストヘルプが彼の助けになります。
現在のカーソル位置に応じて、Sernaは挿入可能な要素を表示するだけでなく、説明とともにヘルプ情報を提供します(ヘルプドキュメントの対応するセクションに移動する可能性もあります)。

その場でドキュメントを検証する
SernaはDTDとXMLスキーマをサポートしています。 Sernaは、それらの助けを借りて、間違った要素や間違った場所に追加することを許可するだけでなく、必要に応じて、作業中にドキュメントの構造の違反を報告します。
XML Schemaのサポートにより、Syntext Sernaは常に、現在のカーソル位置で挿入可能な要素を「認識」します。
XMLエンティティとXIncludeのサポート
コンテンツの再利用に関する上記のことを覚えていますか? これだ。 複数の場所で使用されることになっているテキストのセクションを一度作成し、ドキュメントで必要な場所に挿入するだけで十分です。 そして少し後に、そのような挿入の内容を変更すると、ドキュメント全体で即座に更新されます!
HTMLおよびPDFの作成
外部ユーティリティ(Syntext Sernaまたはカスタムユーティリティ)を使用すると、編集したドキュメントをPDF、HTMLに変換することも、エディター自体から直接「ワンクリックで」変換することも問題ありません。 この「変換」は、XSLT
*を使用して行われます。

*もちろん、ドキュメントのXSLTスタイルがなければ、何も起こりません。 DocBookおよびDITAには、そのような自由に利用可能なXSLTスタイルがすでに含まれています。機能拡張
オブジェクト指向の設計に精通している人は、OCP(Open-Closed Principle:「拡張のために開かれ、修正のために閉じられる」)のような美しい原則の存在を知っている可能性があります。 Syntext Sernaにとって、彼は彼女の礎の1つになりました。
新しいフォーマットのサポート
Sernaで新しい(または既存の)XML形式のサポートを追加することほど簡単なことはありません。 これを行うには、次を指定して新しいフォーマットプロファイルを作成します。
- (オプション)文書が検証されるXMLスキーマ形式。 これがないと、たとえば、コンテキストヘルプはエディターで起動しません。
- (必須)XSLT / XSL(-FO)-表示スタイル。 これがないと、ユーザーはドキュメントを表示できるだけでなく、編集することもできます。
- (オプション)エディターの素敵なパンの動作を変更するさまざまなオプション。

マクロを作成する
Syntext Sernaは、いわゆる「マクロ」に本質的に類似した「コンテキスト依存」挿入の機能を提供します。頻繁に使用されるタグやコンテンツを編集したドキュメントに挿入するボタンを簡単に作成できます。
そのため、たとえば、この拡張ポイントを使用して、XMLドキュメントに「標準」テキスト選択パネル(
太字 、
斜体 、
下線 )を実装できます。 これは、実際にはDITAおよびDocBook形式に対して行われます(エディター自体でどのように実装されているかを常に確認し、ドキュメント形式に同様の形式を追加できます)。

ユーザーインターフェース
エディターのユーザーインターフェイスはレンガで構築されています。 ブリックは、Syntext Sernaインターフェースがどのウィジェットで、どの順序で、どのプロパティで形成されるかを宣言型言語で記述する構成ファイルです。 各タイプのドキュメントには、独自のウィジェットセットがあります。
これは、ユーザーインターフェイスの人間工学を変更する場合、または一般的に使用される機能をボタンとして使用できるようにする場合に便利です。
API
おそらく、これはSyntext Sernaの
ごく一部であり、エディターの機能を拡張する最も考えられない機会を提供します。
Syntext Sernaは、
C ++および
Python用のAPIを提供します。 これらの拡張インターフェースは、問題のXMLエディターの機能の約95%をカバーします。 比較線を引くと、Serna APIの機能をEmacs
オペレーティングシステムの APIと比較的同等に比較することもでき
ます 。
SernaはAPIを使用して、ほぼすべてのコンテンツ管理システム(CMS)と統合できます。 かなり複雑です。 例:c EMC Documentum。 実際に行われていること。 また、エディターに統合された
PyQtライブラリのおかげで、新しい機能ダイアログを開発するのに明らかな困難はありません。
エディターの機能の拡張ポイントごとに、サンプルを含む自給自足のドキュメントが用意されています。 必要に応じて、より「重要な」例では、Syntext Sernaのソースをいつでも調べることができます。これは、これらのブリックの80%以上で構成されています。
1行のその他の機能
Sernaについて長い間話すことができます。 詳細については、開発者のWebサイトを参照してください。 ただし、次のSyntext Sernaの機能について簡単に言及することはできません。
- 単純な入力フォームのドキュメントで直接サポート。
- スペルチェック。
- ドキュメントの「プロファイル」:Sernaの同じドキュメントをさまざまな方法で表示できます。
- 多くの言語のローカライズされたエディターインターフェイス。
- XMLドキュメントのテーブルの優れたサポート(CALSテーブルを使用)。
- Sernaは、XSLT、XSL-FO、XMLカタログ、XMLスキーマ、DTDなどの排他的オープン形式で構築されています。
興味深い事実
- Syntext Sernaは、主にロシアの開発者による開発です。
- Syntext Sernaはかつては閉鎖された有料製品でした。
- このテキストの著者は、数年前からSyntext Sernaの開発と開発に直接関与しています。 また、Syntextでオープンソースのアイデアを説きました。
- ロシアのインターネット市場の最大のプレーヤーの一部は、彼らの職場環境でSyntext Sernaを使用しており、明らかに喜びを感じています。
- Syntext Sernaは、XMLの構成ファイルを編集するためのものではありませんが、これは非常に可能です。
- Syntext SernaはC ++で記述されており、そのソースには多くの興味深いアルゴリズムの実装があります。
- 開発会社のウェブサイトは、Syntext SernaとDITA WebKitと呼ばれるプラグインを使用して作成されました。
まえがき
1. XML文書は万能薬ではなく、Syntext Sernaは技術文書の作成とサポートに関連する問題を解決するための普遍的な手段ではありません。
いずれにせよ、Syntext Serna XMLを一緒に試して選択してください。
そして、代替手段を試してください:
2. Syntext Sernaには、その機能を示す既製のドキュメントの例が付属しています。 それらを表示するには、[ヘルプ]メニューの適切な項目を使用します。
3.そして、Alfrescoのような無料のコンテンツ管理システムを使用してSyntext Sernaと友達になれば、電子文書管理のための優れたソリューションを得ることができます。
4.見つかったバグについて開発者に気軽に知らせてください。 彼らはロシア語であなたに答えさえするでしょう。
5. (Linuxユーザー) 。 ソースコードは入手可能ですが、エディターの最初の導入には既成のアセンブリを使用することをお勧めします。 これの前提条件は次のとおりです。
- 経験によれば、「ブランド化」アセンブリは「自己組織化」アナログよりも安定している場合があります。
- 現時点では、ソースからSernaを構築するプロセスはやや重要です。 かなり詳細な指示があるにもかかわらず;
- 配布ビルドは会社のQAを通過します。
資源
- Syntext Serna Freeの公式情報、 http: //www.syntext.com/products/serna-free/。
- ダウンロードセクションSyntext Serna Free、 http: //www.syntext.com/downloads/serna-free/。
- Syntext Sernaを使用するためのチュートリアル、 http: //downloads.syntext.com/serna-docs/serna-tutorial.pdf