Sorry guys... some dodgy empty-space-like character in the xml file
apparently.
Argh spent ages trying to debug this, including openning nh source-code, and
upgrading our project's lib to NH3CR1. If you are interested, it was caused
by a random character in the xml that looked like an innocent empty space
(but it evidently wasn't).

On Tue, Nov 23, 2010 at 2:53 PM, Hendry Luk <[email protected]> wrote:

> Hello,
> Has anyone tried Map (dictionary) element on NH3x?
> I haven't tried with NH2, but the following hbm file is rejected by
> NHibernate due to xsd validation (which shouldnt be. The hbm is validated
> successfully against the xsd within visual-studio).
>
> The hbm mapping file looks like this.
> <class name="Person">
>   <map name="SomeData">
>       <key column="PersonId"/>
>        <index column="AttributeName" type="System.String"/>
>       <element column="Attributevalue" type="System.String"/>
>     </map>
> </class>
>
> The actual class definition is not relevant because nhibernate won't even
> accept this hbm mapping file at all due to the following xsd validation
> error:
>
> XML validation error: The element 'map' in namespace 
> 'urn:nhibernate-mapping-2.2' cannot contain text. List of possible elements 
> expected: 'map-key, composite-map-key, map-key-many-to-many, index, 
> composite-index, index-many-to-many, index-many-to-any' in namespace 
> 'urn:nhibernate-mapping-2.2'.
>
>   ----> System.Xml.Schema.XmlSchemaValidationException : The element 'map' in 
> namespace 'urn:nhibernate-mapping-2.2' cannot contain text. List of possible 
> elements expected: 'map-key, composite-map-key, map-key-many-to-many, index, 
> composite-index, index-many-to-many, index-many-to-any' in namespace 
> 'urn:nhibernate-mapping-2.2'.
>
> at NHibernate.Cfg.Configuration.LogAndThrow(Exception exception) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 340
> at NHibernate.Cfg.Configuration.ValidationHandler(Object o,
> ValidationEventArgs args) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 1838
> at System.Xml.Schema.XmlSchemaValidator.SendValidationEvent(
> XmlSchemaValidationException e, XmlSeverityType severity)
> at System.Xml.Schema.XmlSchemaValidator.SendValidationEvent(String code,
> String[] args)
> at System.Xml.Schema.XmlSchemaValidator.ValidateText(String
> elementStringValue, XmlValueGetter elementValueGetter)
> at System.Xml.Schema.XmlSchemaValidator.ValidateText(XmlValueGetter
> elementValue)
> at System.Xml.XsdValidatingReader.ProcessReaderEvent()
> at System.Xml.XsdValidatingReader.Read()
> at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
> at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
> at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean
> preserveWhitespace)
> at System.Xml.XmlDocument.Load(XmlReader reader)
> at NHibernate.Cfg.Configuration.LoadMappingDocument(XmlReader hbmReader,
> String name) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 1778
> at NHibernate.Cfg.Configuration.AddXmlReader(XmlReader hbmReader, String
> name) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 1813
> at NHibernate.Cfg.Configuration.AddInputStream(Stream xmlInputStream,
> String name) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 630
> at NHibernate.Cfg.Configuration.AddResource(String path, Assembly assembly)
> in d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 668
> at NHibernate.Cfg.Configuration.AddAssembly(Assembly assembly) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 761
> at NHibernate.Cfg.Configuration.AddAssembly(String assemblyName) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 744
> at NHibernate.Cfg.Configuration.DoConfigure(ISessionFactoryConfiguration
> factoryConfiguration) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 1539
> at NHibernate.Cfg.Configuration.Configure(XmlReader textReader) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 1509
> at NHibernate.Cfg.Configuration.Configure(String fileName, Boolean
> ignoreSessionFactoryConfig) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 1431
> at NHibernate.Cfg.Configuration.Configure(String fileName) in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 1416
> at NHibernate.Cfg.Configuration.Configure() in
> d:\CSharp\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs: line 1402
>
> Anyone has had this problem? I searched in the web and found that this
> exact hbm should work in previous version of NH, but not in the current
> release i'm using.
>
> Cheers
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to