* XmlSchemaExporter.cs: Introduce XmlSchemaObjectContainer class to
[mono.git] / mcs / class / System.XML / Mono.Xml.Schema / ChangeLog
1 2006-04-12  Atsushi Enomoto <atsushi@ximian.com>
2
3         * XmlSchemaValidatingReader.cs : don't reject such XmlReader that
4           does not implement IXmlNamespaceResolver.
5
6 2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
7
8         * XsdValidatingReader.cs : when DTD did not appear in 
9           DTDValidatingReader, it almost makes no sense to use it, so just
10           use its internal EntityResolvingXmlReader (it is required to
11           detect "undeclared entity in use" well-formedness violation).
12           It could double processing speed (or more).
13
14 2006-01-13  Atsushi Enomoto <atsushi@ximian.com>
15
16         * XsdValidatingReader.cs : whitespace nodes should be allowed inside
17           empty or element-only content types. Fixed bug #77241.
18
19 2006-01-11  Atsushi Enomoto <atsushi@ximian.com>
20
21         * XmlSchemaValidatingReader.cs : removed unused constructors.
22           Now it implements IXmlSchemaInfo. Use XmlSchemaType instead of
23           Object to represent schema types.
24
25 2006-01-06  Atsushi Enomoto <atsushi@ximian.com>
26
27         * XsdValidatingReader.cs :
28           Don't use normalized string as input to AssessStringValid(). It 
29           incorrectly invalidates strings against simple types with length-
30           related facets.
31           Now that we don't ignore whitespaces, we need to explicitly allow
32           pure whitespace texts in ElementOnly/Empty model.
33
34 2005-12-26  Atsushi Enomoto <atsushi@ximian.com>
35
36         * XsdValidatingReader.cs : Fixed the bug that only the last schema
37           URL in a schemaLocation was processed. Patch by Vorobiev Maksim.
38
39 2005-12-12  Atsushi Enomoto <atsushi@ximian.com>
40
41         * XsdValidatingReader.cs : it is not IXmlNamespaceResolver anymore.
42
43 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
44
45         * XmlSchemaValidatingReader.cs : XmlSchemaValidationFlags is updated.
46
47 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
48
49         * XsdValidatingReader.cs, XmlSchemaValidatingReader.cs,
50           XsdIdentityState.cs :
51           Dependent changes caused by XmlValueGetter changes.
52
53 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
54
55         * XsdValidatingReader.cs : XmlReader.ReadTypedValue() does not exist 
56           anymore, so it is not override.
57
58 2005-09-30  Atsushi Enomoto <atsushi@ximian.com>
59
60         * XsdValidatingReader.cs: make ParserContext and its NamespaceManager
61           optional. This is for NVDL xsd support.
62
63 2005-09-30  Atsushi Enomoto <atsushi@ximian.com>
64
65         * XsdValidatingReader.cs: allow validation for such XmlReader whose
66           ReadState is Interactive (hold different "is started" flag). This
67           is a fix for nvdl support.
68
69 2005-09-25  Atsushi Enomoto <atsushi@ximian.com>
70
71         * XmlSchemaValidatingReader.cs: XmlSchemaValidationFlags updates.
72
73 2005-08-03  Gert Driesen <drieseng@users.sourceforge.net>
74
75         * XsdValidationReader.cs: GetNamespacesInScope returns generic
76         IDictionary in .NET 2.0 Beta 2.
77         * XmlSchemaValidatingReader.cs: GetNamespacesInScope returns generic
78         IDictionary in .NET 2.0 Beta 2.
79
80 2005-07-28  Atsushi Enomoto <atsushi@ximian.com>
81
82         * XsdValidatingReader.cs : when xsi:schemaLocation could not be
83           resolved, it still does not raise error when corresponding schema
84           already exists.
85
86 2005-05-05  Atsushi Enomoto <atsushi@ximian.com>
87
88         * XsdValidatingReader.cs :
89           removed atomicName related 2.0 members (deprecated in beta2).
90
91 2005-03-22  Atsushi Enomoto <atsushi@ximian.com>
92
93         * XsdValidatingReader.cs : removed unused method which was warned.
94
95 2004-12-22  Atsushi Enomoto <atsushi@ximian.com>
96
97         * XsdValidatingReader.cs : XmlResolver.ResolveUri() may return null.
98
99 2004-12-16  Atsushi Enomoto <atsushi@ximian.com>
100
101         * XsdValidatingReader.cs : added ActualSchemaType to context type.
102         * XmlSchemaValidatingReader.cs : added SchemaInfo override.
103
104 2004-12-16  Atsushi Enomoto <atsushi@ximian.com>
105
106         * XsdParticleValidationState.cs :
107           Removed some unused or unnecessary members. Readonlify some members.
108           Added GetExpectedParticles(ArrayList) and overriden in all state
109           types, which is used in XmlSchemaValidator.GetExpectedParticles().
110
111 2004-12-15  Atsushi Enomoto <atsushi@ximian.com>
112
113         * XmlSchemaValidatingReader.cs : xsi:* attributes are now handled via
114           XmlSchemaValidator.ValidateElement().
115           Removed some obsolete overrides.
116
117 2004-12-14  Atsushi Enomoto <atsushi@ximian.com>
118
119         * XmlSchemaValidatingReader.cs : new file; another XmlReader 
120           implementation that handles XSD validation. It is an reference
121           application for XmlSchemaValidator.
122         * XsdValidatingReader.cs : Use readerLineInfo for IXmlLineInfo.
123
124 2004-12-14  Atsushi Enomoto <atsushi@ximian.com>
125
126         * XsdIdentityState.cs : use validation exception for 2.0.
127           ProcessMatch() does not have to return bool. Use break and continue
128           and reduced indentation.
129         * XsdValidatingReader.cs : use validation exception for 2.0.
130           Added new XsdIDManager class and id handling is delegated to it.
131           XmlQualifiedName -> QName. AssessElementLocallyValidElement() does
132           not need XmlSchemaElement (it is context). Moved some static
133           methods to XmlSchemaUtil.cs. Collected key constraints stuff to a
134           region.
135
136 2004-12-13  Atsushi Enomoto <atsushi@ximian.com>
137
138         * XsdKeyTable.cs : eliminated XmlReader dependency.
139         * XsdValidatingReader.cs :
140           AssertIdentityConstraints() is now splited to selector validation
141           and field validation. Extracted EndKeyrefValidation() to process
142           keyref constraints.
143           Added ReadExternalSchema() and commonized xsi:schemaLocation
144           handling and xsi:noNamespaceSchemaLocation handling.
145         * XsdIdentityState.cs :
146           Eliminated XsdValidatingReader dependency.
147           In XsdKeyEntryField, renamed KeySequence to OwnerSequence.
148           XsdKeyEntryFieldCollection is now based on CollectionBase.
149           In XsdKeyEntry, FieldMatches() is renamed to ProcessMatch() and
150           modified to accept splited XsdValidatingReader members.
151         * XsdIdentityPath.cs : added default .ctor() and IsAttribute property.
152
153 2004-12-13  Atsushi Enomoto <atsushi@ximian.com>
154
155         * XsdIdentityState.cs,
156           XsdIdentityPath.cs,
157           XsdKeyTable.cs : fixed mixed line ending.
158
159 2004-12-11  Atsushi Enomoto <atsushi@ximian.com>
160
161         * XsdValidatingReader.cs,
162           XsdIdentityState.cs : more refactoring.
163           Reduced XmlReader dependency in identity constraint classes.
164           Hide State in XsdValidationContext.
165           Simplify character validation and state resetting.
166           Need more event deligation on ExamineAdditionalSchema().
167           Just cache attribute type directly instead of QName.
168           Use XmlSchemaUtil.ReadTypedValue() common code.
169
170 2004-12-09  Atsushi Enomoto <atsushi@ximian.com>
171
172         * XsdKeyTable.cs :
173           Replaced ArrayList with new XsdKeyEntryCollection type.
174           Workarounded bug #70419.
175         * XsdValidatingReader.cs : propagate validation event handler and
176           XmlResolver. And used them.
177           Renamed local variables a bit (unified to other blocks).
178
179 2004-12-09  Atsushi Enomoto <atsushi@ximian.com>
180
181         * XsdValidatingReader.cs,
182           XsdParticleValidationState.cs : Fixed the previous problem ==
183           inconsistent start assessment and end assessment.
184           More refactory: stateManager is just renamed to state, and its type
185           name is now XsdParticleStateManager.
186           Now Context is included in state.
187           Shortened lengthy xsd related type names with usingdecl.
188
189 2004-12-09  Atsushi Enomoto <atsushi@ximian.com>
190
191         * XsdValidatingReader.cs : mhm, something is wrong with call to
192           context.PopScope(). So quick fix and marked as FIXME.
193
194 2004-12-09  Atsushi Enomoto <atsushi@ximian.com>
195
196         * XsdParticleValidationState.cs : removed unused enum.
197         * XsdValidatingReader.cs : more refactoring. Validation process is
198           now strictly done only when not skipping (no side effect).
199           - elementQnameStack is used only in keyref resolution, so just moved
200             Pop() into EndElement block and thus removed popContext.
201           - Renamed currentQName to attrQName (only used for attribute).
202           - Create defaultAttributes array only when required.
203           So now XsdValidationContext has only Element, State and XsiType.
204           - It now just holds Stack for state objects (instead of Hashtable).
205             Child state is set inside StartElementSchemaValidity (it is kind
206             of StartTagCloseDeriv()).
207           - Removed Clear().
208
209 2004-12-09  Atsushi Enomoto <atsushi@ximian.com>
210
211         * XsdValidatingReader.cs : more refactoring on XsdValidationContext.
212           context.Load() was unnecessary. SchemaType is not necessary.
213           SiblingState and Element are now not accessed externally.
214
215 2004-12-09  Atsushi Enomoto <atsushi@ximian.com>
216
217         * XsdValidatingReader.cs : more refactoring.
218
219 2004-12-08  Atsushi Enomoto <atsushi@ximian.com>
220
221         * XsdValidatingReader.cs : making smarter relationship between
222           XmlValidatingReader. Added ValidationEventHandler and ValidationType.
223           nonDefaultAttributeCount was extraneous.
224           Added 'checkIdentity' (i.e. !IgnoreIdentityConstraints).
225           DefaultAttributesCache property did make little sense, so just
226           reverted to ArrayList field.
227
228 2004-11-26  Atsushi Enomoto  <atsushi@ximian.com>
229
230         * XsdValidatingReader.cs : warning elimination
231
232 2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
233
234         * XsdValidatingReader.cs : commented out some fields and depending
235           code that are currently not used.
236           Fixed "one incorrect missing component handling" in the last commit
237           (it was correct).
238         * XsdIdentityState.cs : removed unused fields and local variables.
239
240 2004-11-20  Atsushi Enomoto  <atsushi@ximian.com>
241
242         * XsdValidatingReader.cs : quick fix for bug #69620. In some cases
243           SchemaSet looks not compiled.
244           Fixed one incorrect missing component handling.
245
246 2004-11-08  Atsushi Enomoto  <atsushi@ximian.com>
247
248         * XsdValidatingReader.cs : reuse NameTable on loading external schema.
249
250 2004-11-07  Atsushi Enomoto  <atsushi@ximian.com>
251
252         * XsdValidatingReader.cs : optimized some ArrayList fields; create them
253           only when required.
254
255 2004-08-20  Atsushi Enomoto  <atsushi@ximian.com>
256
257         * XsdValidatingReader.cs : ReadTypedValue() is override under 2_0.
258
259 2004-08-10  Atsushi Enomoto <atsushi@ximian.com>
260
261         * XsdValidatingReader.cs : replaced XmlSchemaCollection with
262           XmlSchemaSet. Removed unused code.
263
264 2004-08-03  Atsushi Enomoto <atsushi@ximian.com>
265
266         * XsdValidatingReader.cs : implemented 2.0 IXmlNamespaceResolver.
267
268 2004-06-18  Atsushi Enomoto <atsushi@ximian.com>
269
270         * XsdIdentityPath.cs : removed unused code.
271         * XsdIdentityState.cs : Globalization.
272
273 2004-06-11  Atsushi Enomoto <atsushi@ximian.com>
274
275         * XsdValidatingReader.cs : Identity check didn't work fine when
276           reference node appeared in front of the target key node.
277           This fixes bug #59889.
278
279 2004-06-06  Atsushi Enomoto <atsushi@ximian.com>
280
281         * XsdValidatingReader.cs : Close XmlTextReader more strictly. Exception
282           might be thrown in ctor() *after* stream open and before try-catch.
283
284 2004-06-03  Atsushi Enomoto <atsushi@ximian.com>
285
286         * XsdValidatingReader.cs : XmlNamespaceManager.LookupPrefix() allows
287           only atomized names.
288
289 2004-02-16  Atsushi Enomoto <atsushi@ximian.com>
290
291         * XsdIdentityPath.cs,
292           XsdIdentityState.cs,
293           XsdKeyTable.cs,
294           XsdParticleValidationState.cs,
295           XsdValidatingReader.cs,
296           XsdWildcard.cs : made classes internal. Removed extra TODO comments.
297
298 2004-02-08  Atsushi Enomoto <atsushi@ximian.com>
299
300         * XsdIdentityState.cs,
301           XsdKeyTable.cs,
302           XsdParticleValidationState.cs,
303           XsdValidatingReader.cs,
304           XsdWildcard.cs : foreach elimination.
305
306 2004-02-04  Atsushi Enomoto <atsushi@ximian.com>
307
308         * XsdValidatingReader.cs : When the reader points at XmlDeclaration,
309           AttributeCount counts its values (version, encoding, standalone).
310
311 2004-02-03  Atsushi Enomoto <atsushi@ximian.com>
312
313         * XsdValidatingReader.cs : schemaLocation is not NMTOKENS. It is list
314           of anyURI. Just split names and handle as anyURI.
315
316 2004-01-26  Atsushi Enomoto <atsushi@ximian.com>
317
318         * XsdParticleValidationState.cs :
319           - Now it uses ContentTypeParticle as inputs, so no GroupRef 
320             should occur anymore.
321           - xs:any should use ResolvedProcessContents. It fixes some errors.
322         * XsdValidatingReader.cs :
323           - Attribute wildcard validation should use ResolvedProcessContents.
324           - Use newly added XmlResolver field to resolve external schemas
325             specified by xsi:schemaLocation attributes.
326           - Added warning handler and raise warning events when instance-
327             specified schemas could not be resolved.
328           - xs:anyType should not be treated as a primitive datatype at
329             xsi:type resolution.
330           - Schema type was incorrectly remained when the element is laxly
331             validated.
332
333 2004-01-21  Atsushi Enomoto <atsushi@ximian.com>
334
335         * XsdKeyTable.cs : Matching evaluation is incorrect when path is more
336           than depth 2.
337         * XsdValidatingReader.cs : Should clear LocalTypeDefinition when no
338           xsi:type was specified.  
339           Moved character validation inside AssessEndElementSchemaValidity().
340
341 2004-01-20  Atsushi Enomoto <atsushi@ximian.com>
342
343         * XsdParticleValidationState.cs : Use ValidatedMaxOccurs instead of
344           MaxOccurs. (in the meantime)
345         * XsdValidatingReader.cs : "fixed" should not be treated as default.
346         * XsdWildcard.cs : several Wildcard Subset constraint related fixes.
347
348 2004-01-15  Atsushi Enomoto <atsushi@ximian.com>
349
350         * XsdValidatingReader.cs : Now use ValidatableParticle instead of
351           ContentTypeParticle.  Use BaseXmlSchemaType.
352
353 2004-01-14  Atsushi Enomoto <atsushi@ximian.com>
354
355         * XsdIdentityState.cs :
356           Now takes xsi:nil value into consideration for comparison.
357           nsname:* was not handled correctly.
358           Reject complexType as key value type (it is dynamic instance error).
359         * XsdKeyTable.cs : remoed unused code.
360         * XsdValidatingReader.cs :
361           ID comparison was not done.
362           {final} value of attribute definition was not used for default value.
363           Get xsi:nil value from non-default value.
364
365 2004-01-13  Atsushi Enomoto <atsushi@ximian.com>
366
367         * XsdValidatingReader.cs :
368           Dependent change with XmlSchemaElement internal property.
369
370 2004-01-13  Atsushi Enomoto <atsushi@ximian.com>
371
372         * XsdValidatingReader.cs : Throw exception only in case of errors.
373
374 2004-01-08  Lluis Sanchez Gual  <lluis@ximian.com>
375
376         * XsdValidatingReader.cs: In MoveToAttribute(name), if "name" is a default
377         attribute, search for the attribute ignoring the namespace. This matches
378         MS.NET behavior (and fixes bug #52557).
379
380 2004-01-08  Atsushi Enomoto <atsushi@ximian.com>
381
382         * XsdValidatingReader.cs : Fixed in reflection to 
383           XmlSchemaObjectTableGetEnumerator.Value change.
384
385 2004-01-08  Nick Drochak <ndrochak@ieee.org>
386
387         * XsdParticleValidationState.cs: Remove unreachable code.
388
389 2003-12-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
390
391         * XsdValidatingReader.cs : When source Reader has schema context, it
392           should return source's schema type if this class cannot provide it.
393
394 2003-12-08  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
395
396         * XsdValidatingReader.cs : patch by David Sheldon. Base type's facet 
397           validation should also be done.
398
399 2003-12-07  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
400
401         * XsdValidatingReader.cs : FindElement() should use argument names
402           (patch by David Sheldon).  Warning elimination.
403
404 2003-10-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
405
406         * XsdValidatingReader.cs : xsi:type should be normalized. More cleanup.
407         * XsdParticleValidationState.cs : Reverted default content processing
408           to lax. It is msxsdtest/wildCard/wildG038.xsd which looks incorrect.
409
410 2003-10-25  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
411
412         * XsdValidatingReader.cs : Removed MonoTODO which was implemented in
413           XmlValidatingreader as a result. Added xsi:nil normalization.
414
415 2003-10-23  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
416
417         * XsdParticleValidationState.cs : Default content processing shoule be
418           lax.
419         * XsdValidatingReader.cs : If there is no trial to get schemas for
420           namespaces, then validation against such namespace should be failed.
421           It now uses XmlSchemaAttribute.ValidatedUse instead of .Use.
422         * XsdWildcard.cs : Fixed incorrect intersection computing.
423
424 2003-10-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
425
426         * XsdKeyTable.cs : Reduced compilation warning.
427         * XsdParticleValidationState.cs : Reduced NotImplementedException.
428         * XsdValidatingReader.cs : Removed XmlResolver. Implemented more simple
429           type validation, such as list, union and facets.
430
431 2003-09-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
432
433         * added XsdIdentityPath.cs, XsdIdentityState.cs, XsdKeyTable.cs
434           and XsdWildcard.cs.
435         * XsdParticleValidationState.cs, XsdValidatingReader.cs:
436           Completely rewrote existing validation engine.
437
438 2003-08-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
439
440         * XsdValidatingReader.cs,
441           XsdParticleValidationState.cs : Initial checkin.