An open API service indexing awesome lists of open source software.

https://github.com/isotes/vs-model

Generated XMLBeans Java classes for the MSBuild project XML schema
https://github.com/isotes/vs-model

java library msbuild visual-studio xmlbeans

Last synced: 4 months ago
JSON representation

Generated XMLBeans Java classes for the MSBuild project XML schema

Awesome Lists containing this project

README

          

# vs-model [![License](https://img.shields.io/github/license/isotes/vs-model)](LICENSE) [![Build Status](https://travis-ci.com/isotes/vs-model.svg?branch=master)](https://travis-ci.com/isotes/vs-model) [![Javadoc](https://img.shields.io/badge/docs-javadoc-blue)](https://isotes.github.io/javadoc/vs-model-1.0.0/) [![Maven Central](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Frepo1.maven.org%2Fmaven2%2Fio%2Fgithub%2Fisotes%2Fvs-model%2Fmaven-metadata.xml)](https://search.maven.org/search?q=g:io.github.isotes%20a:vs-model)
Generated [XMLBeans](https://xmlbeans.apache.org/) Java classes for the XML schema of [MSBuild](https://github.com/microsoft/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](https://xmlbeans.apache.org/) based on the official XML Schema files provided by the [MSBuild](https://github.com/microsoft/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](https://github.com/isotes/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](https://search.maven.org/search?q=g:io.github.isotes%20a:vs-model) for the current Maven coordinates or use via the [vs-utils](https://search.maven.org/search?q=g:io.github.isotes%20a:vs-utils) project.

## Schema
The XML Schema files [Microsoft.Build.CommonTypes.xsd](src/main/resources/io/github/isotes/vs/model/Microsoft.Build.CommonTypes.xsd) and [Microsoft.Build.Core.xsd](src/main/resources/io/github/isotes/vs/model/Microsoft.Build.Core.xsd) are from [MSBuild](https://github.com/microsoft/msbuild/tree/master/src/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](LICENSE)