[C#] XML에서 C # 클래스 생성

XML 파일에서 C # 클래스를 생성 할 수 있습니까?



답변

예, xsd.exe 를 사용하여

D:\temp>xsd test.xml
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'D:\temp\test.xsd'.

D:\temp>xsd test.xsd /classes
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'D:\temp\test.cs'.

노트

개발자 명령 프롬프트에서 디렉토리 를 d : \ temp 로 변경하는 방법에 대한 대답 은 유용 할 수 있습니다.

다차원 배열에 대한 클래스를 생성하는 경우 XSD.exe 생성기에 버그가 있지만 해결 방법이 있습니다.


답변

VS 2012 이상에서 .NET 4.5 프로젝트를 작업하는 경우 XML 파일을 클래스로 특수 붙여 넣기 만하면 됩니다.

  1. XML 파일의 내용을 클립 보드에 복사
  2. 편집기에서 수업을 붙여 넣을 장소를 선택하십시오.
  3. 메뉴에서 EDIT > Paste Special > Paste XML As Classes

답변

처음에는 Paste Special이 성배라고 생각했습니다! 그러나 나는 그것을 시도했고 인디애나 존스 영화처럼 머리카락이 하얗게 변했습니다.

그러나 지금은 http://xmltocsharp.azurewebsites.net/을 사용 하고 이제는 젊습니다.

다음은 생성 된 부분입니다.

namespace Xml2CSharp
{
    [XmlRoot(ElementName="entry")]
    public class Entry {
        [XmlElement(ElementName="hybrisEntryID")]
        public string HybrisEntryID { get; set; }
        [XmlElement(ElementName="mapicsLineSequenceNumber")]
        public string MapicsLineSequenceNumber { get; set; }


답변

나는 이것이 다소 오래된 게시물이고 당신은 아마 계속 움직 였다는 것을 알고 있습니다.

그러나 나는 당신과 같은 문제가있어서 내 자신의 프로그램을 작성하기로 결정했습니다.

나를 위해 “xml-> xsd-> classes”라우트의 문제점은 완전히 유지 관리 할 수없는 코드를 방금 생성하여 결국 터프하게한다는 것입니다.

그것은 결코 우아하지 않지만 나를 위해 일을했습니다.

여기에서 얻을 수 있습니다 : 원하는 경우 제안하십시오.

SimpleXmlToCode


답변

svcutil을 고려해야합니다 ( svcutil question )

xsd.exe와 svcutil은 모두 XML 스키마 파일 (.xsd)에서 작동합니다. XML은이 두 도구 중 하나에서 사용할 스키마 파일을 준수해야합니다.

이를 위해 다양한 타사 도구도 있습니다.


답변

Darin이 제안한대로 xsd를 사용할 수 있습니다.

또한 test.xsd 파일을 편집하여보다 합리적인 스키마를 작성하는 것이 좋습니다.

type="xs:string"변경 될 수있는 type="xs:int"정수 값
minOccurs="0"으로 변경 될 수있는 minOccurs="1"필드가 요구되는 경우
maxOccurs="unbounded"에 변경 될 수있는 maxOccurs="1"하나의 항목 만이 허용되는 곳

데이터를 더 검증하려면 고급 xsd-s를 생성 할 수 있지만 적어도 생성 된 c #에서 합리적인 데이터 유형을 제공하게됩니다.


답변

XSD 파일에서 스키마 클래스를 작성하려면 아래 구문을 사용하십시오.

C:\xsd C:\Test\test-Schema.xsd /classes /language:cs /out:C:\Test\