2012-07-01 4 views
0

Visual Studio Tools (이제 Win 7 SDK 도구)의 XSD.Exe를 사용하여 XML 파일에서 .xsd를 만들었습니다. ("System.InvalidOperationException"- xsd XSD2Code 스타일 시트 XML C# Visual Studio

namespace VNEngine 
{ 
using System; 
using System.Diagnostics; 
using System.Xml.Serialization; 
using System.Collections; 
using System.Xml.Schema; 
using System.ComponentModel; 
using System.IO; 
using System.Text; 
using System.Collections.Generic; 


public partial class Scene 
{ 

    private string vNESceneNameField; 
    private string vNEPlayerNameField; 
    private List<SceneVNEButton> vNEButtonsField; 
    private SceneVNETextBox vNETextBoxField; 
    private SceneVNEBackground vNEBackgroundField; 
    private List<SceneVNESprite> vNESpritesField; 
    private SceneVNEMusic vNEMusicField; 
    private static System.Xml.Serialization.XmlSerializer serializer; 

    public Scene() 
    { 
     this.vNEMusicField = new SceneVNEMusic(); 
     this.vNESpritesField = new List<SceneVNESprite>(); 
     this.vNEBackgroundField = new SceneVNEBackground(); 
     this.vNETextBoxField = new SceneVNETextBox(); 
     this.vNEButtonsField = new List<SceneVNEButton>(); 
    } 

    public string VNESceneName 
    { 
     get 
     { 
      return this.vNESceneNameField; 
     } 
     set 
     { 
      this.vNESceneNameField = value; 
     } 
    } 

: 내 .XSD 파일 : 나는 다음 .Designer.cs 파일을 만들 XSD2Code (추가 기능 VS에 대한)를 사용

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema id="SceneFile" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 
<xs:element name="Scene"> 
<xs:complexType> 
    <xs:sequence> 
    <xs:element name="VNESceneName" type="xs:string" minOccurs="0" maxOccurs="1"/> 
    <xs:element name="VNEPlayerName" type="xs:string" minOccurs="0" maxOccurs="1"/> 
    <xs:element name="VNEButtons" minOccurs="0" maxOccurs="1"> 

(너무 길어 sicne의 cutted)

  Scene testscene = new Scene(); 
      testscene.VNEPlayerName = "hallo"; 
:의 cutted는 내 C# 코드에서 (루트 XML 태그)

지금 나는 "장면"을 만들려는) 너무 오래입니다 sicne 이 점

모든 업하고있다,하지만 난 저장할 때 또는 직렬화 (또는 직렬화)이 같은 : SceneFiles.designer.cs 지금

  testscene.SaveToFile(@"Content/Scenes/testscene.xml"); 

내가 라인에서 오류가 실행 ()

private static System.Xml.Serialization.XmlSerializer Serializer 
    { 
     get 
     { 
      if((serializer == null)) 
      { 
     ---> serializer = new System.Xml.Serialization.XmlSerializer(typeof(Scene)); 
      } 
      return serializer; 
     } 
    } 

그리고 내 오류는 다음과 같이 진행됩니다

//

아이네의 nicht의 behandelte Ausnahm 형식 : System.Xml.dll에 "System.InvalidOperationException"이 없습니다.

정보 표시 : Fehler beim Reflektieren des Typs 'VNEngine.Scene'.

//

내 거친 영어 번역 :

처리 된하지 예외 : System.InvalidOperationException이 가 system.xml.dll 추가 정보에 나타난 오류를 'VNEngine.Scene'

유형을 반영에서

//

사람이 내가 잘못 만들 었는지 알고 있나요?

똑같은 것은 xsd.exe generatet .xsd 스타일 시트가 아닌 작고 복잡한 것으로 작동했습니다.

답변

0

좋아, 찾았습니다. XSD2Code에는 GenerateXMLAttributes 옵션이 있습니다.이 옵션은 true로 설정해야합니다.