io.github.isotes:vs-model

Generated XMLBeans Java classes for the XML schema of MSBuild project files


Keywords
java, library, msbuild, visual-studio, xmlbeans
License
MIT

Documentation

vs-model License Build Status Javadoc Maven Central

Generated XMLBeans Java classes for the XML schema of MSBuild project files.

Overview

The goal of this project is to provide a Java model to allow reading, modifying, and writing MSBuild project files (e.g., *.vcxproj). The model is generated with XMLBeans based on the official XML Schema files provided by the MSBuild project.

This project only contains the generated classes (and associated files generated by XMLBeans). An additional small set of utility classes that might be helpful is developed in the vs-utils project.

The only extension to the upstream schema is the addition of the Lib element to the ItemDefinitionGroup that is commonly present in C/C++ library projects but seems to be missing from the schema. Since we do not have its specification, we use the LinkItem type as the occurrences we encountered in real-world files were covered by that type.

Use

See Maven Central for the current Maven coordinates or use via the vs-utils project.

Schema

The XML Schema files Microsoft.Build.CommonTypes.xsd and Microsoft.Build.Core.xsd are from MSBuild revision 7bcb2f961093e87277439420d351a9f3f3a8cdb8 (2019-12-17). We do not use the upstream root Microsoft.Build.xsd as it contains a backslash in an import statement that precludes direct use with XMLBeans and it does not add any information beyond the Common and Core schema files.

License

MIT