It comes down to these cases for XML elements having maxOccurs="1" (which the default for maxOccurs):
adding nillable="true" will convert from a regular type to a nullable type.
adding minOccurs="0" will add boolean …Specified properties in the generated C# for each element.
you can have both nillable="true" and minOccurs="0" in an element which gets you a nullable type and a …Specified property.
Note I’m not considering fixed or default here, nor attributes (that have use instead of minOccurs/maxOccurs, but do not allow for nillable) nor larger values of maxOccurs (which both xsd.exe and xsd2code regard as unbounded).
From the above, XML has a richer type system than C#, so in XML there are subtle a differences between:
an explicit nil in the XML element
the XML element being absent
the XML element being empty.
Hopefully later more text and examples to show how to actually work with this.
A while ago I bumped into this interesting bit: LLLPG (Loyc LL(k) Parser Generator) is a new recursive-decent parser generator for C#, with a feature set better than ANTLR version 2.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
:: Run the most recent vsvars32.bat
:: test these environment variables that have 110 or 120 in them (future enhancements: support more Visual Studio versions):
:: Visual Studio .NET 2002: VS70COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio .NET\Common7\Tools\
:: Visual Studio .NET 2003: VS71COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Common7\Tools\
:: Visual Studio 2005: VS80COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\
:: Visual Studio 2008: VS90COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\
:: Visual Studio 2010: VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\
:: Visual Studio 2012: VS110COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\
:: Visual Studio 2013: VS120COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\
:: VS130COMNTOOLS was skipped: http://www.neowin.net/forum/topic/1215607-visual-studio-13-to-be-skipped-vnext-to-be-v14/
:: Visual Studio 2015: VS130COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\
:: They contain `vsvars32.bat` which will update the `PATH` so it includes where `xsd.exe`, `csc.exe`, `editbin.exe` and others reside
:: Different examples: https://github.com/noop-dev/c-cgdk/blob/master/compile-vscpp.bat
:: and https://code.google.com/p/xvid4psp/source/browse/trunk/bin/4Gb+patcher.bat
:: or give it a go for any version: http://chess.eecs.berkeley.edu/ptexternal/src/ptII/ptolemy/actor/lib/fmi/fmus/template/sources/build_fmu.bat
setlocal enabledelayedexpansion
:: delayed expansion allows for the exclamation marks
:: see http://ss64.com/nt/delayedexpansion.html
:: see http://stackoverflow.com/questions/22857407/windows-batch-how-to-assign-variable-with-dynamic-name
for %%v in (70 71 80 90 100 110 120 130) do if not [!VS%%vCOMNTOOLS!]==[] set VSCOMNTOOLS=!VS%%vCOMNTOOLS!
:: http://stackoverflow.com/questions/28682268/assign-variables-past-endlocal-in-a-loop
endlocal & call :do call "%VSCOMNTOOLS%vsvars32.bat"
goto :eof
:do
echo %*
%*
goto :eof
Though ASP.NET was clearly enabled according to the Windows features, this was apparently for an old ASP.NET version so I manually re-registered ASP.NET (but now for Version 4: I had 4.6.1 installed):
C:\Windows\System32>%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir
Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation. All rights reserved.
Start installing ASP.NET (4.0.30319.0) without changing existing web applications to use this version of ASP.Net.
.....
Finished installing ASP.NET (4.0.30319.0) without changing existing web applications to use this version of ASP.Net.
Windows 7 is .NET 2.0 all over the place…
Then it still didn’t work, but the second tip above also mentioned the application pool. And since Bonobo insists installing in wwwwroot, it’s using the default application which on Windows 7 – surprise! – is ASP.NET 2.0:
Default Windows 7 application pool for wwwroot uses ASP.NET 2.0
Visual Studio 2015 install stuck on “acquiring” KB2999226
I had exactly the same when installing Visual Studio 2015 on a Windows 7 x64 system: stuck on “Acquiring” the “Update for Microsoft Windows (KB2999226)”.
Be sure to quit both the Visual Studio 2015 installation as well as any (“automagically interfering” background Windows Updates), as otherwise you get this error:
---------------------------
Windows Update Standalone Installer
---------------------------
Only one instance of wusa.exe is allowed to run.
---------------------------
OK
---------------------------
If you still get that error, then
try to stop/start the wuauserv service: usually it gets rid of the error.
When it still occurs, try a clean boot, then re-apply the KB.
Applying the KB can take a long while, even on fast hardware.