• <menu id="w2i4a"></menu>
  • XBinder?架構(gòu)編譯器 (產(chǎn)品編號(hào):14338)

    一種 XML 數(shù)據(jù)綁定工具,用于從 XML 模式規(guī)范生成 C/C++、Java 或 C# 數(shù)據(jù)結(jié)構(gòu)和

    標(biāo)簽:

    開(kāi)發(fā)商: Objective Systems

    當(dāng)前版本: XBinder 2.8.0

    產(chǎn)品類(lèi)型:控件

    產(chǎn)品功能:網(wǎng)絡(luò)通訊

    平臺(tái)語(yǔ)言:中文l英文

    開(kāi)源水平:不提供源碼

    本產(chǎn)品的分類(lèi)與介紹僅供參考,具體以商家網(wǎng)站介紹為準(zhǔn),如有疑問(wèn)請(qǐng)來(lái)電 023-68661681 咨詢(xún)。

    XBinder?架構(gòu)編譯器是一種用于C++、Java和C#等編程語(yǔ)言的高性能數(shù)據(jù)綁定工具,它能夠?qū)ML Schema、JSON Schema、Google Protocol Buffers等數(shù)據(jù)格式編譯成對(duì)應(yīng)的代碼庫(kù),從而實(shí)現(xiàn)應(yīng)用程序與數(shù)據(jù)交互的快速和可靠性。

    多種數(shù)據(jù)格式支持

    XBinder?架構(gòu)編譯器支持多種數(shù)據(jù)格式,包括XML Schema、JSON Schema、Google Protocol Buffers、ASN.1、FIX等。

    多語(yǔ)言支持

    XBinder?架構(gòu)編譯器支持多種編程語(yǔ)言,包括C++、Java、C#、Python等。

    易于使用

    XBinder?架構(gòu)編譯器具有簡(jiǎn)單易用的界面和操作流程,用戶可以通過(guò)圖形界面或命令行接口進(jìn)行數(shù)據(jù)格式的編譯和代碼庫(kù)的生成。

    可擴(kuò)展性

    XBinder?架構(gòu)編譯器具有強(qiáng)大的可擴(kuò)展性,可以通過(guò)插件或自定義代碼生成模板等方式進(jìn)行定制化開(kāi)發(fā)

    平臺(tái)兼容性

    XBinder?架構(gòu)編譯器支持多種操作系統(tǒng)和平臺(tái),包括Windows、Linux、macOS、iOS、Android等。

    高性能

    XBinder?架構(gòu)編譯器生成的代碼庫(kù)具有高性能和低內(nèi)存占用,能夠快速地序列化和反序列化數(shù)據(jù)。

    XBinder?架構(gòu)編譯器適用于多種應(yīng)用場(chǎng)景,例如網(wǎng)絡(luò)通訊、嵌入式系統(tǒng)、數(shù)據(jù)存儲(chǔ)等領(lǐng)域,可以幫助開(kāi)發(fā)人員實(shí)現(xiàn)快速、可靠的數(shù)據(jù)交互,提高開(kāi)發(fā)效率和產(chǎn)品質(zhì)量。


    * 關(guān)于本產(chǎn)品的分類(lèi)與介紹僅供參考,精準(zhǔn)產(chǎn)品資料以官網(wǎng)介紹為準(zhǔn),如需購(gòu)買(mǎi)請(qǐng)先行測(cè)試。

    產(chǎn)品介紹


    XBinder是一個(gè)XML Schema到 C/C++、Java 或 C# 代碼生成工具。XML數(shù)據(jù)綁定(或代碼生成)是將 XML 模式信息項(xiàng)轉(zhuǎn)換為計(jì)算機(jī)語(yǔ)言中的類(lèi)型定義和函數(shù)的過(guò)程。
    XBinder代碼生成工具生成的源代碼是由類(lèi)型定義和編碼/解碼函數(shù)組成的C、C++、Java或C#源代碼。這提供了一個(gè)完整的應(yīng)用程序編程接口 (API),用于處理 XML 模式規(guī)范中包含的所有消息定義。
    除了代碼生成器之外,通用編碼/解碼函數(shù)的運(yùn)行時(shí)庫(kù)也是該包的一部分。該庫(kù)包含編碼和解碼基本 XML 模式簡(jiǎn)單類(lèi)型(整數(shù)、字符串、hexBinary 等)的例程。XBinder代碼生成工具將對(duì)這些函數(shù)的一系列調(diào)用組合起來(lái),完成更復(fù)雜消息類(lèi)型的編碼或解碼。
    評(píng)估版可用于 Windows、Linux、各種 UNIX 平臺(tái)和 Apple Mac OSX。


    為什么選擇XML


    XBinder的XML數(shù)據(jù)綁定與傳統(tǒng)的XML API相比具有以下優(yōu)勢(shì):

    • 高性能:驗(yàn)證或(反)序列化等操作使用從XML模式生成的代碼比使用驗(yàn)證解析器更快
    • 簡(jiǎn)單快捷:XBinder可自動(dòng)生成結(jié)構(gòu)良好、易于閱讀的代碼,以縮短上市周期
    • 可靠性: XML數(shù)據(jù)綁定應(yīng)用程序,通過(guò)模擬級(jí)別的工作來(lái)確保生成的XML文檔有效且可靠


    操作演示


    假設(shè)您需要編寫(xiě)代碼來(lái)解析下面的 XML 實(shí)例并打印出其中包含的所有數(shù)據(jù)。

    John Smith Toys R Us Toy Bath Set 19.95 

    在此頁(yè)面上,我們將比較在沒(méi)有 XBinder 的情況下解析此實(shí)例所需的代碼量與使用 XBinder 進(jìn)行解析所需的代碼量。我們將在這兩個(gè)示例中使用 C++。對(duì)于非 XBinder 代碼,我們將使用 libxml++ DOM功能。

    如果不使用XBinder,下面是需要編寫(xiě)的代碼:

    #include #include int main(){// Parse the XML file.xmlpp::DomParser parser;parser.set_substitute_entities();try{parser.parse_file("purchase.xml");}catch (std::exception& ex)            {               printf("\n%s", ex.what());            }              // Get the root node.            xmlpp::Node* pPurchaseNode = parser.get_document()->get_root_node();            Glib::ustring nodename = pPurchaseNode->get_name();              // Get the root node's children in a list.            xmlpp::Node::NodeList purchaseChildren = pPurchaseNode->get_children();              // Now walk through the children and process them according to what element            // is represented.            for (xmlpp::Node::NodeList::iterator iter = purchaseChildren.begin();            iter != purchaseChildren.end(); ++iter)            {               xmlpp::Node* pChildNode = *iter;               nodename = pChildNode->get_name();                 if (nodename == "text")               {                  // We'll get the text value for each element explicitly                  // as we encounter them.                  continue;               }               else if (nodename == "customer")               {                  // We're at the  node.  We want to print the customer                  // name and number.                  xmlpp::Element* pChildElement =                     dynamic_cast (pChildNode);                  xmlpp::Attribute* pCustomerAttr =                     pChildElement->get_attribute("number");                  printf("\nCustomer number:  %s", pCustomerAttr->get_value().c_str());                    xmlpp::TextNode* pChildText = pChildElement->get_child_text();                  printf("\nCustomer name:  %s", pChildText->get_content().c_str());               }               else if (nodename == "store")               {                  // We're at the  node.  We want to print the store name.                  xmlpp::Element* pChildElement =                     dynamic_cast (pChildNode);                  xmlpp::TextNode* pChildText = pChildElement->get_child_text();                  printf("\nStore name:  %s", pChildText->get_content().c_str());               }               else if (nodename == "item")               {                  // We're at the  node.  We want to print the item name.                  xmlpp::Element* pChildElement =                     dynamic_cast (pChildNode);                  xmlpp::TextNode* pChildText = pChildElement->get_child_text();                  printf("\nItem name:  %s", pChildText->get_content().c_str());               }               else if (nodename == "price")               {                  // We're at the  node.  We want to print the price.                  xmlpp::Element* pChildElement =                     dynamic_cast (pChildNode);                  xmlpp::TextNode* pChildText = pChildElement->get_child_text();                  printf("\nPrice:  %s", pChildText->get_content().c_str());               }            }              return 0;         }            

    下面是需要使用XBinder編寫(xiě)的代碼:

    #include "rtxsrc/OSRTFileInputStream.h"#include "rtxmlsrc/rtXmlCppMsgBuf.h"#include#includeint main(){// Setup to decode the instance in purchase.xmlint stat;const char* filename = "Purchase.xml";            OSRTFileInputStream in (filename);            OSXMLDecodeBuffer decodeBuffer (in);            purchase_CC pdu (decodeBuffer);              // Do the decode            stat = pdu.decode();              // Print the information that was in the instance.            PurchaseRecord* pPurchase = pdu.getValue();            printf("\nCustomer number:  %d", pPurchase->customer.number);            printf("\nCustomer name:  %s", pPurchase->customer.value.c_str());            printf("\nStore name:  %s", pPurchase->store.c_str());            PurchaseRecord_3* pItemAndPrice = pPurchase->_seq3.getItem(0);            unsigned short i = 0;            while (pItemAndPrice != 0)            {               printf("\nItem name:  %s", pItemAndPrice->item.c_str());               printf("\nItem price:  %.2f", pItemAndPrice->price);               pItemAndPrice = pPurchase->_seq3.getItem(++i);            }            return stat;         }            

    這些代碼示例需要注意:

    (1)不使用XBinder的代碼所花費(fèi)的時(shí)間大約是使用該代碼的兩倍

    (2)XBinder大大減少了代碼作者必須具備的有關(guān)XML實(shí)例結(jié)構(gòu)的知識(shí)量。對(duì)于這個(gè)簡(jiǎn)單的實(shí)例,如果代碼作者使用XBinder,他幾乎不需要了解XML結(jié)構(gòu)

    (3)不使用XBinder的代碼不會(huì)對(duì)XML語(yǔ)法進(jìn)行任何驗(yàn)證。例如,如果與此實(shí)例關(guān)聯(lián)的模式規(guī)定元素必須跟在元素之后,則不會(huì)檢查該約束。

    (4)添加這種類(lèi)型的檢查會(huì)使非XBinder代碼比現(xiàn)在長(zhǎng)很多! 基于模式的語(yǔ)法加固由XBinder在解碼過(guò)程中完成。

    (5)stat只需對(duì)XBinder示例中的變量值進(jìn)行簡(jiǎn)單檢查 即可將需要添加到基于XBinder的代碼中。

    最新版本下載

    XBinder2.8.0是當(dāng)前的最新版本。此版本于2022年8月18日發(fā)布。

    更新時(shí)間:2023-05-24 16:38:05.000 | 錄入時(shí)間:2023-04-17 15:39:12.567 | 責(zé)任編輯:吳秋紅

    相關(guān)產(chǎn)品
    控件
  • 產(chǎn)品功能:網(wǎng)絡(luò)通訊
  • 源 碼:非開(kāi)源
  • 產(chǎn)品編號(hào):14306
  • 當(dāng)前版本:v10.0.1290 [銷(xiāo)售以商家最新版為準(zhǔn),如需其他版本,請(qǐng)來(lái)電咨詢(xún)]
  • 開(kāi) 發(fā) 商: Catalyst Development Corporation 正式授權(quán)
  • ">SocketTools ActiveX Edition

    一套使你能夠在你的應(yīng)用程序中添加互聯(lián)網(wǎng)功能的ActiveX控件。

    控件
  • 產(chǎn)品功能:網(wǎng)絡(luò)通訊
  • 源 碼:非開(kāi)源
  • 產(chǎn)品編號(hào):14307
  • 當(dāng)前版本:v10.0.1290 [銷(xiāo)售以商家最新版為準(zhǔn),如需其他版本,請(qǐng)來(lái)電咨詢(xún)]
  • 開(kāi) 發(fā) 商: Catalyst Development Corporation 正式授權(quán)
  • ">SocketTools Library Edition

    SocketTools庫(kù)版是一套Windows庫(kù),可簡(jiǎn)化互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)

    控件
  • 產(chǎn)品功能:網(wǎng)絡(luò)通訊
  • 源 碼:非開(kāi)源
  • 產(chǎn)品編號(hào):14308
  • 當(dāng)前版本:v10.0.1290 [銷(xiāo)售以商家最新版為準(zhǔn),如需其他版本,請(qǐng)來(lái)電咨詢(xún)]
  • 開(kāi) 發(fā) 商: Catalyst Development Corporation 正式授權(quán)
  • ">SocketTools Subscription

    一套用于Windows軟件開(kāi)發(fā)的互聯(lián)網(wǎng)組件和庫(kù)

    軟件
  • 產(chǎn)品功能:網(wǎng)絡(luò)通訊
  • 源 碼:非開(kāi)源
  • 產(chǎn)品編號(hào):12466
  • 當(dāng)前版本:6.13.266.0 [銷(xiāo)售以商家最新版為準(zhǔn),如需其他版本,請(qǐng)來(lái)電咨詢(xún)]
  • 開(kāi) 發(fā) 商: Software Toolbox 正式授權(quán)
  • ">TOP Server OPC Server

    工業(yè)4.0工業(yè)控制軟件Software Toolbox's OPC和原生HMI設(shè)備的連接軟件,采用業(yè)界領(lǐng)先的Kepware技術(shù)。

    軟件
  • 產(chǎn)品功能:網(wǎng)絡(luò)通訊
  • 源 碼:非開(kāi)源
  • 產(chǎn)品編號(hào):14311
  • 當(dāng)前版本:2021 [銷(xiāo)售以商家最新版為準(zhǔn),如需其他版本,請(qǐng)來(lái)電咨詢(xún)]
  • 開(kāi) 發(fā) 商: Software Toolbox 正式授權(quán)
  • ">IoT Solutions

    MQTT, Azure, Amazon, Google, Rest, & Edge物聯(lián)網(wǎng)方案

    掃碼咨詢(xún)


    添加微信 立即咨詢(xún)

    電話咨詢(xún)

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();