Skip to content

Commit 20919f5

Browse files
author
Michael Ganss
committed
Add tableau test
Exclude IATA test (takes too long) Only test schema valid xml samples Better (still hacky) support for choices (fixes #76) Always use DateTime for xs:time
1 parent 410bbdf commit 20919f5

File tree

11 files changed

+1072
-124
lines changed

11 files changed

+1072
-124
lines changed

XmlSampleGenerator/Generator.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,7 @@ public object GetEnumerationValue() {
297297
}
298298
public void ProcessLengthFacet(ref StringBuilder genString, int index) {
299299
int pLength = genString.Length;
300-
int indexLen = index.ToString().Length;
301-
int correctLen = length - indexLen;
300+
int correctLen = length;
302301
if(pLength > correctLen) {
303302
genString.Remove(correctLen,pLength-correctLen);
304303
}
@@ -324,8 +323,7 @@ public void ProcessMinLengthFacet(ref StringBuilder genString, int index) {
324323

325324
public void ProcessMaxLengthFacet(ref StringBuilder genString, int index) {
326325
int pLength = genString.Length;
327-
int indexLen = index.ToString().Length;
328-
int correctLen = maxLength - indexLen;
326+
int correctLen = maxLength;
329327
if(pLength > correctLen) {
330328
genString.Remove(correctLen,pLength-correctLen);
331329
}
@@ -371,17 +369,17 @@ public override string GenerateValue() {
371369
}
372370
else {
373371
if(length != -1) { // The length facet is set
374-
ProcessLengthFacet(ref genString, endValue);
375372
genString.Append(endValue);
373+
ProcessLengthFacet(ref genString, endValue);
376374
}
377375
else {
378-
if(minLength != -1) {
376+
genString.Append(endValue);
377+
if (minLength != -1) {
379378
ProcessMinLengthFacet(ref genString, endValue);
380379
}
381380
if(maxLength != -1) {
382381
ProcessMaxLengthFacet(ref genString, endValue);
383382
}
384-
genString.Append(endValue);
385383
}
386384
}
387385
string result = genString.ToString();

XmlSchemaClassGenerator.Console/Program.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ static void Main(string[] args)
3636
var generateDebuggerStepThroughAttribute = true;
3737
var disableComments = false;
3838
var doNotUseUnderscoreInPrivateMemberNames = false;
39-
var timeType = false;
4039

4140
var options = new OptionSet {
4241
{ "h|help", "show this message and exit", v => showHelp = v != null },
@@ -80,7 +79,6 @@ A file name may be given by appending a pipe sign (|) followed by a file name (l
8079
{ "dst|debuggerStepThrough", "generate DebuggerStepThroughAttribute (default is enabled)", v => generateDebuggerStepThroughAttribute = v != null },
8180
{ "dc|disableComments", "do not include comments from xsd", v => disableComments = v != null },
8281
{ "nu|noUnderscore", "do not generate underscore in private member name (default is false)", v => doNotUseUnderscoreInPrivateMemberNames = v != null },
83-
{ "tt|timeAsDateTime", "map xs:time to DateTime instead of string", v => timeType = v != null },
8482
};
8583

8684
var files = options.Parse(args);
@@ -124,7 +122,6 @@ A file name may be given by appending a pipe sign (|) followed by a file name (l
124122
TextValuePropertyName = textValuePropertyName,
125123
GenerateDebuggerStepThroughAttribute = generateDebuggerStepThroughAttribute,
126124
DisableComments = disableComments,
127-
TimeDataType = timeType ? typeof(DateTime) : typeof(string)
128125
};
129126

130127
if (pclCompatible)

XmlSchemaClassGenerator.Tests/Compiler.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ public static Assembly GenerateFiles(string name, IEnumerable<string> files, Gen
7878
EntityFramework = generatorPrototype.EntityFramework,
7979
GenerateInterfaces = generatorPrototype.GenerateInterfaces,
8080
MemberVisitor = generatorPrototype.MemberVisitor,
81-
TimeDataType = generatorPrototype.TimeDataType
8281
};
8382

8483
gen.Generate(files);

XmlSchemaClassGenerator.Tests/XmlSchemaClassGenerator.Tests.csproj

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,162 @@
172172
<None Update="xsd\elster-xml-datenabholung5\th000008_extern.xsd">
173173
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
174174
</None>
175+
<None Update="xsd\iata\Acknowledgement.xsd">
176+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
177+
</None>
178+
<None Update="xsd\iata\aidm_commontypes.xsd">
179+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
180+
</None>
181+
<None Update="xsd\iata\AirDocDisplayRQ.xsd">
182+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
183+
</None>
184+
<None Update="xsd\iata\AirDocDisplayRS.xsd">
185+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
186+
</None>
187+
<None Update="xsd\iata\AirDocHistoryRQ.xsd">
188+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
189+
</None>
190+
<None Update="xsd\iata\AirDocHistoryRS.xsd">
191+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
192+
</None>
193+
<None Update="xsd\iata\AirDocIssueRQ.xsd">
194+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
195+
</None>
196+
<None Update="xsd\iata\AirDocNotifRQ.xsd">
197+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
198+
</None>
199+
<None Update="xsd\iata\AirlineProfileNotif.xsd">
200+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
201+
</None>
202+
<None Update="xsd\iata\AirlineProfileRQ.xsd">
203+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
204+
</None>
205+
<None Update="xsd\iata\AirlineProfileRS.xsd">
206+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
207+
</None>
208+
<None Update="xsd\iata\AirShoppingRQ.xsd">
209+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
210+
</None>
211+
<None Update="xsd\iata\AirShoppingRS.xsd">
212+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
213+
</None>
214+
<None Update="xsd\iata\BaggageAllowanceRQ.xsd">
215+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
216+
</None>
217+
<None Update="xsd\iata\BaggageAllowanceRS.xsd">
218+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
219+
</None>
220+
<None Update="xsd\iata\BaggageChargesRQ.xsd">
221+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
222+
</None>
223+
<None Update="xsd\iata\BaggageChargesRS.xsd">
224+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
225+
</None>
226+
<None Update="xsd\iata\BaggageListRQ.xsd">
227+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
228+
</None>
229+
<None Update="xsd\iata\BaggageListRS.xsd">
230+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
231+
</None>
232+
<None Update="xsd\iata\CustomerInputRQ.xsd">
233+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
234+
</None>
235+
<None Update="xsd\iata\CustomerInputRS.xsd">
236+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
237+
</None>
238+
<None Update="xsd\iata\edist_commontypes.xsd">
239+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
240+
</None>
241+
<None Update="xsd\iata\edist_structures.xsd">
242+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
243+
</None>
244+
<None Update="xsd\iata\FareRulesRQ.xsd">
245+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
246+
</None>
247+
<None Update="xsd\iata\FareRulesRS.xsd">
248+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
249+
</None>
250+
<None Update="xsd\iata\FileRetrieveRQ.xsd">
251+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
252+
</None>
253+
<None Update="xsd\iata\FileRetrieveRS.xsd">
254+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
255+
</None>
256+
<None Update="xsd\iata\InvGuaranteeRQ.xsd">
257+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
258+
</None>
259+
<None Update="xsd\iata\InvGuaranteeRS.xsd">
260+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
261+
</None>
262+
<None Update="xsd\iata\InvReleaseNotif.xsd">
263+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
264+
</None>
265+
<None Update="xsd\iata\OfferPriceRQ.xsd">
266+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
267+
</None>
268+
<None Update="xsd\iata\OfferPriceRS.xsd">
269+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
270+
</None>
271+
<None Update="xsd\iata\OrderCancelRQ.xsd">
272+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
273+
</None>
274+
<None Update="xsd\iata\OrderCancelRS.xsd">
275+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
276+
</None>
277+
<None Update="xsd\iata\OrderChangeNotif.xsd">
278+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
279+
</None>
280+
<None Update="xsd\iata\OrderChangeRQ.xsd">
281+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
282+
</None>
283+
<None Update="xsd\iata\OrderCreateRQ.xsd">
284+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
285+
</None>
286+
<None Update="xsd\iata\OrderHistoryRQ.xsd">
287+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
288+
</None>
289+
<None Update="xsd\iata\OrderHistoryRS.xsd">
290+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
291+
</None>
292+
<None Update="xsd\iata\OrderListRQ.xsd">
293+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
294+
</None>
295+
<None Update="xsd\iata\OrderListRS.xsd">
296+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
297+
</None>
298+
<None Update="xsd\iata\OrderReshopRQ.xsd">
299+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
300+
</None>
301+
<None Update="xsd\iata\OrderReshopRS.xsd">
302+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
303+
</None>
304+
<None Update="xsd\iata\OrderRetrieveRQ.xsd">
305+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
306+
</None>
307+
<None Update="xsd\iata\OrderRulesRQ.xsd">
308+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
309+
</None>
310+
<None Update="xsd\iata\OrderRulesRS.xsd">
311+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
312+
</None>
313+
<None Update="xsd\iata\OrderViewRS.xsd">
314+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
315+
</None>
316+
<None Update="xsd\iata\SeatAvailabilityRQ.xsd">
317+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
318+
</None>
319+
<None Update="xsd\iata\SeatAvailabilityRS.xsd">
320+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
321+
</None>
322+
<None Update="xsd\iata\ServiceListRQ.xsd">
323+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
324+
</None>
325+
<None Update="xsd\iata\ServiceListRS.xsd">
326+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
327+
</None>
328+
<None Update="xsd\iata\xmldsig-core-schema.xsd">
329+
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
330+
</None>
175331
<None Update="xsd\is24immotransfer\is24immotransfer.xsd">
176332
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
177333
</None>
@@ -265,6 +421,9 @@
265421
<None Update="xsd\is24\search\shortlist-1.0.xsd">
266422
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
267423
</None>
424+
<None Update="xsd\ts-api\ts-api_2_8.xsd">
425+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
426+
</None>
268427
<None Update="xsd\wadl\wadl.xsd">
269428
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
270429
</None>

0 commit comments

Comments
 (0)