Skip to content

zhengshuxin/libwbxml

 
 

Repository files navigation

    WBXML Library
    -------------
    
    The WBXML Library (aka libwbxml) contains a library and its associated tools to Parse,
    Encode and Handle WBXML documents.

    The WBXML format is a binary representation of XML, defined by the Wap Forum, and used
    to reduce bandwidth in mobile communications. 
    
    
    Dependency:
    -----------
    
    The WBXML Library needs Expat to enable XML Parsing feature (and so XML to WBXML conversion).
    
    
    High Level API:
    ---------------
    
                        -------------------------
                (1)     |                       |
  [ WBXML ] --------->  |                       | ----------> [ XML ]
                        |     WBXML Library     |
  [ WBXML ] <---------  |                       | <---------- [ XML ]
                        |                       |     (2)
                        -------------------------      
    
    The high level API permits to:
        - (1) Convert a WBXML Document to an XML Document
        - (2) Convert an XML Document to a WBXML Document


    Inside the WBXML Library:
    -------------------------
    
  [ WBXML ]                                                                   [ XML ]
      |                                                                           |
      |  -------------------------                       -----------------------  |
      |  |   WBXML Parser (1)    |                       |  Expat XML Parser   |  |
      |  |                       |                       |                     |  |
      |  -------------------------                       -----------------------  |
      |    |WBXML Callbacks (3)|                           |XML Callbacks (4)|    |
       \                                                                         /
        \                                                                       /
         -------------------------> [ WBXML Tree (2) ] <------------------------

                                           ||
                                           ||
                                           \/                                           

                                 -----------------------
                                 |  WBXML Encoder (5)  |
                                 |                     |
                                 -----------------------
                                      |           |
                                      |           |
                                     /             \
  [ WBXML ] <-----------------------                ------------------------> [ XML ]
  
  
    The WBXML Library contains:
        - (1) A WBXML Parser, with a SAX like interface (ie: this is a kind of Expat, but for WBXML)
        - (2) A WBXML Tree structure (an internal representation of a WBXML/XML Document)
        - (3) Libwbxml Callbacks to convert a WBXML Document to a WBXML Tree
        - (4) Expat Callbacks to convert an XML Document to a WBXML Tree
        - (5) A WBXML Encoder, that encodes a WBXML Tree to a WBXML Document or to an XML Document 

	    
	If you find bugs, or simply use this library, feel free to contact me.


    Supported Languages:
    --------------------
        - WML 1.0, 1.1, 1.2, 1.3
        - WTA 1.0
        - WTA-WML 1.2
        - CHANNEL 1.1, 1.2
        - SI 1.0 (tested)
        - SL 1.0 (tested)
        - CO 1.0
        - PROV 1.0 (tested)
        - EMN 1.0 (tested)
        - DRMREL 1.0 (tested)
        - Ericsson / Nokia OTA Settings v7.0 (tested)
        - SYNCML 1.0, 1.1, 1.2
        - WV CSP 1.1, 1.2 (partially tested)


    TOOLS:
    ------
    
    Two tools are provided:
        - wbxml2xml: (WBXML => XML)
            wbxml2xml -i -o output.xml input.wbxml
            wbxml2xml -i 4 -l CSP12 -o output.xml input.wbxml
            Options:
                -o output.xml : output file
                -m X (Generation mode - Default: 1) with:
                   0: Compact Generation
                   1: Indent Generation
                   2: Canonical Generation
                -i X (Indent delta when using mode '1' - Default: 1)
                -k (Keep Ignorable Whitespaces - Default: FALSE)
                -l X (Force Language Type of document to parse)
                    WML10 : WML 1.0
                    WML11 : WML 1.1
                    WML12 : WML 1.2
                    WML13 : WML 1.3
                    WTA10 : WTA 1.0
                    WTAWML12 : WTAWML 1.2
                    CHANNEL11 : CHANNEL 1.1
                    CHANNEL12 : CHANNEL 1.2
                    SI10 : SL 1.0
                    SL10 : SI 1.0
                    CO10 : CO 1.0
                    PROV10 : PROV 1.0
                    EMN10 : EMN 1.0
                    DRMREL10 : DRMREL 1.0
                    OTA : OTA Settings
                    SYNCML10 : SYNCML 1.0
                    DEVINF10 : DEVINF 1.0
                    SYNCML11 : SYNCML 1.1
                    DEVINF11 : DEVINF 1.1
                    METINF11 : METINF 1.1
                    SYNCML12 : SYNCML 1.2
                    DEVINF12 : DEVINF 1.2
                    METINF12 : METINF 1.2
                    CSP11 : WV CSP 1.1
                    CSP12 : WV CSP 1.2                  
            Note: '-' can be used to mean stdin on input or stdout on output             
            
        - xml2wbxml: (XML => WBXML)
            xml2wbxml -o output.wbxml input.xml
            xml2wbxml -k -n -v 1.1 -o output.wbxml input.xml
            Options:
                -o output.wbxml : output file
                -k : keep ignorable whitespaces (Default: ignore)
                -n : do NOT generate String Table (Default: generate)
                -v X (WBXML Version of output document)
                    1.0 : WBXML 1.0
                    1.1 : WBXML 1.1
                    1.2 : WBXML 1.2
                    1.3 : WBXML 1.3                
            Note: '-' can be used to mean stdin on input or stdout on output


    CONTACT:
    --------

        Please use GitHub to report bugs, ask questions or submit code:
        https://github.com/libwbxml/libwbxml

        Releases can be found on Sourceforge too:
        https://sourceforge.net/projects/libwbxml/

About

Source code of libwbxml

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 73.4%
  • CMake 20.5%
  • C++ 5.2%
  • Other 0.9%