マルクスによると、人間社会には3つの要素があります。
生産性、生産関係、富の再分配です。
一般的に言って、個人的には富の再配分が中心だと思いますが、吊りワイヤーについては、生産性に注目しましょう。父のリー・ガンについては考えてみてください。
生産性の中核はツールです。
したがって、プログラマーとして、ツールを習得することは非常に重要です。人を雇う前に、私は理論とツールにも同じように重点を置きました。道具に注意を払わない人は、練習に注意を払わない人であることが多い。Zhao Kuoの理論は悪くありませんが、戦うことはできません。その理由の1つは、その実践が十分ではない、またはその実践が評価されていないことです。
ここで私は自分の心理学を要約します。あいにく入って私が書いたテキストをご覧になった場合は、しばらくお待ちください。
最近XMLツールを使用していますが、XMLSpyとLiquidXMLStudioの2つが主なツールです。
********************
始めましょう:
まずWebページを見てください。
これも私の習慣です。
しかし、ここのリストは完全ではありません。
いくつかの側面があることを願っています。
* C ++コードを生成できます。この関数はここで呼び出されます:マップ。mapは、xsdからコードにマップすることを意味します。もちろん、他にも意味はありますが、一般的にはxmlからxml、xmlからDBなどのマップは使われていませんが、わかりやすく書いてありますが、マップだけということで、今はこれを意味しているようです。CまたはC ++コードを生成する理由は、基礎となるパーサーがCで記述されているためです。このレベルで切り替えたくありません。
XML自体がインターフェース情報のベアリングだからです。新しい言語を追加する必要はありません。
*生成されたコードがオープンソースのXMLライブラリに基づいている場合は、より優れています。
現時点では、調査後の最適なXMLオープンソースライブラリはlibxml2とxercesですが、一般的に自分で作成する場合はlibxml2を選択します。
このライブラリはCをベースにしているため、クロスプラットフォームにも便利です。
*その他のXML自動編集ツール。言うまでもありません。
しかし実際には、この要件を満たす編集者は見つかりませんでした。
XMLSpyとLiquidXMLStudioに加えて、実際には強力な2つの強力な機能があることがわかりました。
http://en.wikipedia.org/wiki/Comparison_of_XML_editors
しかし、なぜ一部がそれほど高価なのか理解できませんでした。プログラマーは常にプログラマーの視点から世界を見るようで、その中で最も高価なMadCap FlareはLiquidXMLStudioよりも桁違いに高価です。
MadCap FlareとXMLSeedXMLスキーマエディターは
、どちらも非プログラマーにとっては似ているようです。それらが高価である理由は、彼らが実際にXMLの意味を使用しているためです:完全なドキュメント(プログラマーの名前ではなく:拡張性ML)。これはプログラマーではない人のためのものであり、プログラマーが一般的にワイヤをぶら下げていることを示しているようです。海外でも同じかもしれません。
ハ。言うまでもなく、ハンガーはすべて振り返ります。そのため、焦点はXMLSpyとLiquidXMLStudioに戻ります。(なぜ吊りワイヤーを使用するのですか?QQピンインがあるため、背が高いため、単語を入力できません)。
驚いたことに、XMLSpyは非常に高価です。非プログラマに追いつきます。
ただし、2014年の最新バージョンがなく、XMLからC ++へのMAPも完了できるとのことな
ので、LiquidXMLStudioのみを使用。
LiquidXMLStudioはさまざまな言語をマップできますが、C ++を使用しました。
その方法については、書きませんこのページを見てください:
http : //www.liquid-technologies.com/Liquid-Products/LearnAbout/XmlDataBinding.aspx
は壁に囲まれていません。
これが私の最大の懸念事項の1つであることを言うのを忘れていました
。
もちろん次はDバージョンです。
次に、次のバージョンのVS 2003を使用することをお勧めします。XPで実行できます。
以上が私の要望です。
************************************************** *********************
調査後、一時的に要件を満たしていない場合。
しかし、xmlstudio2011が最適です。亀裂があるため、C ++コードを生成できます。
オープンソースのXMLライブラリではありませんが、それで十分です。
************************************************** *********************
以下はサンプルコードですが、最も重要なのは、これらのいくつかの
BookStoreLib :: CBookstorePtr spBS = BookStoreLib :: CBookstore :: CreateInstance();
BookStoreLibです。 :CBookTypePtr spBook = spBS-> GetBook()-> Add();
spBook-> SetTitle(_T( "ベンジャミンフランクリンの自伝"));
spBook-> SetPrice(8.99);
spBook-> SetPublicationdate(LtXmlLib12 :: CDateTime(1981、5、11));
spBook-> SetISBN(_T( "1-861003-11-0"));
spBook-> GetAuthor()-> SetFirst_name(_T( "Benjamin"));
spBook-> GetAuthor()-> SetLast_name(_T( "Franklin"));
spBook- > SetGenre(_T( "autobiography"));
std :: tstring strXml = spBook-> ToXml();
1. XSDを開き、次のようにします:ウィザードを開きます:
2. C ++言語を選択します
3.一部の情報を変更できます(オプション)
4 。テストXMLファイルに入力します。
5. OK、プロジェクトを開いた後
6.プロジェクトを開いて、コーディングを少し実行します。Liquidは自動的にchmヘルプドキュメントを作成します。
以下のように、実際の例を生成できます。
ちなみに、選択したxmlはサンプルプロジェクトの下にあります。
D:\ Program Files(x86)\ Liquid Technologies \ Liquid XML 2014 \ Examples \ BookStore \ Schemas \ BookStore.xsd
D:\ Program Files(x86)\ Liquid Technologies \ Liquid XML 2014 \ Examples \ BookStore \ Data Files \ BookStoreSample。 xml
**********************************************
//作成XMLファイルを
bs :: CBookstorePtr にロードするクラスのインスタンスelm = bs :: CBookstore :: CreateInstance();
//ファイルからオブジェクトにxmlをロードします(
// xmlドキュメントのルート要素は<bookstore>でなければなりません
。elm-> FromXmlFile(lpctFilename);
// -------- <haoyujie>- ------------
bs :: CBookTypePtr spBook = elm-> GetBookCol()-> Add();
spBook-> SetTitle(_T( "The Autobiography of Benjamin Franklin"));
spBook->
spBook-> SetPublicationdate(LtXmlLib12 :: CDateTime(1981、5、11));
spBook-> SetISBN(_T( "1-861003-11-0"));
spBook-> GetAuthor()-> SetFirst_name(_T( "Benjamin"));
spBook-> GetAuthor()-> SetLast_name(_T( "Franklin"));
spBook-> SetGenre(_T( "autobiography"));
// -------- </ haoyujie> --------------
********************** ***********************
#include "stdafx.h"
#include "../BookStoreLib.h"
#include "../BookStoreLib/Bookstore。 h "
名前空間LtXmlLib12を使用。
//宣言を転送する
void SimpleTestBookStoreLibCBookstore(LPCTSTR);
void WriteTest();
void ReadTest();
/// <概要>
/// </ summary>
int main(int argc、char * argv [])
{
WriteTest();
ReadTest();
_tprintf(_T( "\ n \ nキーを押して終了します"));
getchar();
0を返します。
}
void WriteTest()
{
try
{
_tprintf(_T( "\ nXMLドキュメントを作成しています... \ n"));
// XMLドキュメントを最初から作成する
BookStoreLib :: CBookstorePtr spBS = BookStoreLib :: CBookstore :: CreateInstance();
BookStoreLib :: CBookTypePtr spBook = spBS-> GetBook()-> Add();
spBook-> SetTitle(_T( "ベンジャミンフランクリンの自伝"));
spBook-> SetPrice(8.99);
spBook-> SetPublicationdate(LtXmlLib12 :: CDateTime(1981、5、11));
spBook-> SetISBN(_T( "1-861003-11-0"));
spBook-> GetAuthor()-> SetFirst_name(_T( "Benjamin"));
spBook-> GetAuthor()-> SetLast_name(_T( "Franklin"));
spBook-> SetGenre(_T( "autobiography"));
std :: tstring strXml = spBook-> ToXml();
_tprintf(_T( "\ nこれはXMLです:\ n%s")、strXml.c_str());
}
catch(CLtException&e)
{
//注:例外には
、エラーに関する詳細を提供する内部例外//が含まれている可能性が高く、GetFullMessage
//それらすべてからのメッセージが連結されます。
_tprintf(_T( "エラー-%s \ n")、e.GetFullMessage()。c_str());
_tprintf(_T( "\ n既存のXMLドキュメントを読み込んでいます... \ n"));
// XMLドキュメントを最初から作成する
BookStoreLib :: CBookstorePtr spBS = BookStoreLib :: CBookstore :: CreateInstance();
spBS-> FromXmlFile(_T( ".. \\ .. \\ .. \\ BookStoreSample.xml"));
for(BookStoreLib :: CBookTypeCol :: iterator itr = spBS-> GetBook()-> begin();
itr!= spBS-> GetBook()-> end();
itr ++)
{
BookStoreLib :: CBookTypePtr spBook = * itr;
_tprintf(_T( "本のタイトル%s \ n")、spBook-> GetTitle()。c_str());
_tprintf(_T( "価格%f \ n")、spBook-> GetPrice());
_tprintf(_T( "作成者%s%s \ n")、spBook-> GetAuthor()-> GetFirst_name()。c_str()、spBook-> GetAuthor()-> GetLast_name()。c_str());
_tprintf(_T( "Publicationdate%s \ n")、spBook-> GetPublicationdate()。ToString()。c_str());
else
_tprintf(_T( "Publicationdate Not Listed \ n"));
if(spBook-> IsValidISBN())
_tprintf(_T( "ISBN%s \ n")、spBook-> GetISBN()。c_str());
else
_tprintf(_T( "リストされていないISBN \ n"));
if(spBook-> IsValidGenre())
_tprintf(_T( "ジャンル%s \ n")、spBook-> GetGenre()。c_str());
else
_tprintf(_T( "ジャンルはリストされていません\ n"));
}
}
catch(CLtException&e)
{
//注:例外には内部例外が含まれている可能性があります
//エラーに関する詳細を提供します
_tprintf(_T( "エラー-%s \ n")、e.GetFullMessage()。c_str());
}
}
LiquidXMLStudioはXMLをC ++コードにマップします
おすすめ
転載: www.cnblogs.com/aquariusunny/p/12729976.html
おすすめ
ランキング