CodeSynthesis XSD: Difference between revisions

Content deleted Content added
Csabo (talk | contribs)
mNo edit summary
No edit summary
 
(24 intermediate revisions by 16 users not shown)
Line 1:
{{Infobox software
'''CodeSynthesis XSD''' is an [[XML Data Binding]] compiler for [[C++]] developed by [[Code Synthesis]] and [[dual license|dual-licensed]] under the [[GNU GPL]] and a proprietary license. Given an [[XML]] instance specification ([[XML Schema]]), it generates C++ classes that represent the given vocabulary as well as parsing and serialization code. It is supported on a large number of platforms, including [[IBM AIX (operating system)|AIX]], [[Linux|GNU/Linux]], [[HPUX|HP-UX]], [[Mac OS X]], [[Solaris Operating System|Solaris]], and [[Microsoft Windows|Windows]]. Supported C++ compilers include [[GNU Compiler Collection|GNU G++]], [[Intel C++]], [[HP aCC]], [[Sun C++]], [[IBM XL C++]], and [[Microsoft Visual C++]].
| name = CodeSynthesis XSD
| developer = Code Synthesis
| latest release version = 4.2.0
| latest release date = {{Start date and age|2023|10|05}}
| operating system = [[Cross-platform]] [[C++]]
| programming language = [[C++]]
| genre = [[XML Data Binding]]
| license = [[GNU General Public License]] and Proprietary License
| website = {{url|https://www.codesynthesis.com/products/xsd}}
}}
 
'''CodeSynthesis XSD''' is an [[XML Data Binding]] compiler for [[C++]] developed by [[Code Synthesis]] and [[dual license|dual-licensed]] under the [[GNU GPL]] and a proprietary license. Given an [[XML]] instance specification ([[XML Schema (W3C)|XML Schema]]), it generates C++ classes that represent the given vocabulary as well as parsing and serialization code. It is supported on a large number of platforms, including [[IBM AIX (operating system)|AIX]], [[Linux|GNU/Linux]], [[HPUX|HP-UX]], [[Mac OS X]], [[Solaris Operating(operating Systemsystem)|Solaris]], and [[Microsoft Windows (operating system)|Windows]], [[OpenVMS]], and [[z/OS]]. Supported C++ compilers include [[GNU Compiler Collection|GNU G++]], [[Intel C++]], [[HP aCC]], [[SunOracle Solaris Studio|Solaris Studio C++]], [[IBM XL C++]], and [[Microsoft Visual C++]]. A version for mobile and embedded systems, called [[CodeSynthesis XSD/e]], is also available.
One of the unique features of CodeSynthesis XSD is its support for two different XML Schema to C++ mappings: in-memory C++/Tree and stream-oriented C++/Parser. The C++/Tree mapping is a traditional mapping with a tree-like, in-memory data structure. C++/Parser is a new, [[SAX]]-like mapping which represents the information stored in XML instance documents as a hierarchy of vocabulary-specific parsing events. In comparison to C++/Tree, the C++/Parser mapping allows one
 
to handle large XML documents that would not fit in memory, perform stream-oriented processing, or use an existing in-memory representation.
One of the unique features of CodeSynthesis XSD is its support for two different XML Schema to C++ mappings: in-memory C++/Tree and stream-oriented C++/Parser. The C++/Tree mapping is a traditional mapping with a tree-like, in-memory data structure. C++/Parser is a new, [[Simple API for XML|SAX]]-like mapping which represents the information stored in XML instance documents as a hierarchy of vocabulary-specific parsing events. In comparison to C++/Tree, the C++/Parser mapping allows one to handle large XML documents that would not fit in memory, perform stream-oriented processing, or use an existing in-memory representation. The XSD-generated code can target C++98/03 or C++11.
 
CodeSynthesis XSD itself is written in C++.
 
==References==
{{reflist}}
 
==External links==
* [http://www.codesynthesis.com/products/xsd/ CodeSynthesis XSD Home Page]
* [http://www.codesynthesis.com/projects/xsd/documentation/cxx/tree/guide/ An Introduction to the C++/Tree Mapping]
* [http://www.codesynthesis.com/projects/xsd/documentation/cxx/parser/guide/ An Introduction to the C++/Parser Mapping]
* [http://www.artima.com/cppsource/xml_data_binding.html An Introduction to XML Data Binding in C++]
 
[[Category:XML]]
[[Category:XML parsers]]
[[Category:C++]]
[[Category:C++ libraries]]