2011-05-09 4 views
5

제목은 거의 모두를 말합니다. VS xsd.exe는 낙타의 경우 클래스를 만듭니다. 파스칼 케이스에서 클래스를 생성하는 방법이 있습니까?Visual Studio xsd.exe를 사용하여 코드를 생성 할 때 파스칼 케이스 클래스 이름

낙타의 경우 클래스 이름을 파스칼 케이스로 변환하는 좋은 도구를 모른다면 누구나 알 수 있습니다.

감사

편집 : 표준으로 낙타의 경우 클래스 이름을 생성하지 않습니다

xsd.exe이 - 그러나, 나는이 문제를 오버라이드 (override)에 관심이 있어요 - 그냥 스키마의 규칙을 다음과 그래서 XmlElement name 속성은 여전히 ​​스키마에 정의 된 규칙을 따르지만 클래스 이름은 파스칼 케이스입니다.

답변

1

xsd.exe가 그 사실을 인식하지 못했습니다. 스키마의 유형이 camelCase에서도 정의되지 않았습니까?

나의 제안은 모든면에서 xsd.exe 훨씬 우수 xsd2code ..

+0

스키마의 유형은 낙타의 경우입니다.하지만 표준 XML 실습은 무엇입니까? 대다수의 XML은 낙타의 경우가 많기 때문에 .NET 언어의 표준 사례처럼 파스칼 케이스를 자동으로 사용하면 좋을 것입니다. 내가 xsd2code에서 물어 본 것을 할 수 있습니까? – jcvandan

+0

그렇듯이 표준 연습은 아니지만 예 (http://stackoverflow.com/questions/442529/is-there-a-standard-naming-convention-for-xml-elements)입니다. xsd2code가 PascalCase로 바뀌지 않을 것이라고 생각합니다. 옵션으로 약간 짧게됩니다. 첫 번째 옵션은 스키마에서 PascalCase를 채택하는 것입니다. 두 번째 옵션은 PascalCase로 이름을 변경하는 스키마에 대해 XSLT 스타일 시트를 실행하는 것입니다. 세 번째 옵션은 생성 된 C# 코드의 자동 리팩터링을 수행하는 것입니다. 어떤 옵션도 특히 매력적이지 않습니다! 죄송합니다. 더 이상 도와 드릴 수 없습니다. – MattDavey

+0

두 번째 옵션 (XSLT)과 관련하여 식별자를 PascalCase로 변환하는 기능이 있습니다 - http://xsltsl.sourceforge.net/string.html#template.str:to-camelcase (XSLT에서는 UpperCamelCase 또는 TitleCase라고 함). 여전히 ****에있는 고통은 스타일 시트를 통해 스키마를 실행해야만합니다. ( – MattDavey

0

체크 아웃 XmlSchemaClassGenerator, 그것의 기능 중 PascalCasing을 포함하는 오픈 소스 콘솔 응용 프로그램을 사용하는 것입니다. (xsd2code의 15 일 평가판이 만료 된 후에 발견되었습니다.C#을 네임 스페이스)

  • 지도 XML 네임 스페이스, 명시 적 또는 (구성) 함수
  • 스키마 주석에서 C#의 XML 주석
  • 스키마 제한에서 DataAnnotations 속성을 생성 생성
  • 사용 Collection<T>을 통해 속성 (생성자 및 전용 설정자로 초기화 됨)
  • int, long, decimal 또는 string을 사용하십시오. XS을 위해 : 정수 및 파생 된 형식
  • 자동 등록
  • 클래스와 속성
  • 선택적 요소에 대한 널 (NULL) 어댑터 속성을 생성하기위한 파스칼 케이스가 기본 값없이 속성
  • 는 PCL
  • 에 대한
  • 지원 옵션 (아래 참조) INotifyPropertyChanged

에 대한
  • 옵션 지원 원래

    : 수정

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1"> 
    

    :

    을 나는 일에 콘솔 응용 프로그램을 얻을 수 전에 내 경우

    , 나는 다음과 같이 targetNamespace 필드를 포함하는 XSD 문서를 수정했다

    XmlSchemaClassGenerator.Console -n "http://www.w3.org/2001/XMLSchema=gateway" -o "C:\{output-folder}" {xsd-file-name}.xsd 
    
    :
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="gateway" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1"> 
    

    내 최종 용도는 다음과 같이보고