Actually I was wrong, it's already there: https://github.com/Microsoft/referencesource/tree/master/System.Xml/System/Xml/Schema

Atsushi Eno

On 2014年11月13日 00:05, Atsushi Eno wrote:
And Microsoft has announced open-sourcing .NET! So you don't have to spread your hate speech on bugs, we will take their good code.

https://github.com/dotnet/corefx/tree/master/src

(No XML Schema implementation yet, but I assume that would happen at some stage.)

Atsushi Eno


On 2014年11月12日 22:44, Atsushi Eno wrote:
Hello,

If you believe xs:complexType/xs:extension is that superficial, could you explain why the validation result is wrong?

Dealing with xs:complexType is one of the most complicated XML schema validation technology, which involved handful of ambiguity, which may be fixed in later specifications, after we have implemented this feature mostly in 2003-2004.

Atsushi Eno

On 2014年11月12日 15:15, MarLOne wrote:
Hello,

Not sure if this issue has been raised as it is driving me nuts as another
Mono/.Net runtime behavior differences.

I have a xml schema called FamilyTree2.xsd  FamilyTree2.xsd
<http://mono.1490590.n4.nabble.com/file/n4664552/FamilyTree2.xsd> . This
has been validate in Eclipse's Xsd Editor.

Then I have an instance document created using this schema and is called
FamilyTree2SimplePerson.xml  FamilyTree2SimplePerson.xml
<http://mono.1490590.n4.nabble.com/file/n4664552/FamilyTree2SimplePerson.xml>

I then use xsd.exe in Mono runtime 2.10.8.1 to generate a C# class from the schema. I then use the following code to deserialize the instance document
into an person object:
         [Test]
         public void TestSimplePerson ()
         {
             const String testFile = "FamilyTree2SimplePerson.xml";
String fileName = Path.Combine( Constants.DataFilesDirectory,
testFile );
             Assert.IsTrue( File.Exists( fileName ) );
                          LMar.Demo.person p = null;
             using( Stream input = File.OpenRead( fileName ) )
             {
                 XmlReaderSettings rs = new XmlReaderSettings();
                 rs.Schemas = new XmlSchemaSet();
                 rs.Schemas.Add( SchemaLoaders.FamilyTree2 );
                 rs.ValidationType = ValidationType.Schema;
using( XmlReader reader = XmlReader.Create( input, rs ) )
                 {
                     XmlSerializer ser = new XmlSerializer( typeof(
LMar.Demo.person ) );
p = ser.Deserialize( reader ) as LMar.Demo.person; //
XmlSchemaValiationException
                     Assert.IsNotNull( p );
                 }
             }

The schema is embedded into the assembly as embedded resource,

The exception message is as follows:
System.Xml.Schema.XmlSchemaValiationException: XmlSchema error: Attribute
declaration was not found for name XML Line 6, Position 12.

person is the base class of spouse which uses the xs:extension to define it in the schema. This error message points to the name for the spouse object.

I believe this is a Mono & MS .Net incompatibility runtime error for the
following reasons:
1) The instance document has been validated by Eclipse xsd/xml editor as
well as online validator. In fact the instance document was created by
Eclipse xml editor.
2) The same code ( the xsd generated code produced in .Net and Mono appear to be the same) shown above runs without error in MS .Net and retrieving all
the values.

Has anyone discovered this error? It is a simple usage of xs:extension, a
very commonly used construct and should not cause any incompatibility.

It is so disheartening to see superficial compatibility while beneath the surface so much differences. Is there a site that lists this kind of runtime incompatibility for people wanting to use Mono as serious tool? Every time I push Mono, I end up in a hole like this as I have encountered time and time
again incompatibilities.

Is there some quirky flags in the XmlReaderSettings to get this going in
Mono?

Thanks.

MarL




--
View this message in context: http://mono.1490590.n4.nabble.com/Mono-Net-difference-handling-xs-extension-please-help-tp4664552.html
Sent from the Mono - Dev mailing list archive at Nabble.com.
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list




_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to