답변:
마이크로 소프트 XSD 추론 도구는 좋은, 무료 솔루션입니다. XmlSpy (@Garth Gilmour가 언급 함) 또는 OxygenXML Editor와 같은 많은 XML 편집 도구에도 해당 기능이 있습니다. 그러나 다소 비쌉니다. BizTalk Server에는 XSD 유추 도구도 있습니다.
편집 : 방금 .net XmlSchemaInference 클래스를 발견 했으므로 .net을 사용하는 경우 다음을 고려해야합니다.
xsd.exe
Windows 7에서 변경된 것으로 보입니다 . 많은 Microsoft SDKs
디렉토리에 디렉토리가 있으므로 (더 이상 Visual Studio에 의존하지 않는 것 같 습니까?)이 중 하나 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools
입니다. "경로의 잘못된 문자"에 대한 오류를 방지하기 위해 xml이 포함 된 디렉토리에서 실행해야했지만 파일 이름이 길어질 수 있습니다.
오픈 소스 및 크로스 플랫폼 옵션 인 inst2xsd를 Apache의 XMLBeans 에서 사용할 수 있습니다 . 나는 그것이 매우 유용하고 쉽다는 것을 알았습니다.
다운로드, 압축 풀기 및 재생 만하면됩니다 (Java 필요).
Trang 이 가장 좋은 옵션입니다. 오픈 소스 및 크로스 플랫폼 (Java가 필요하지만)
트랑 웹 사이트에서 :
Trang은 XML에 대해 서로 다른 스키마 언어를 변환합니다. 다음 언어를 지원합니다
- RELAX NG (XML 구문)
- RELAX NG 컴팩트 구문
- XML 1.0 DTD
- W3C XML 스키마
지원되는 스키마 언어로 작성된 스키마는 W3C XML 스키마가 입력 용이 아닌 출력용으로 만 지원되는 것을 제외하고 다른 지원되는 스키마 언어로 변환 될 수 있습니다.
Trang은 하나 이상의 예제 XML 문서에서 스키마를 유추 할 수도 있습니다.
$ trang file.xml schema.xsd
.
또한 Github에서XML schema learner
사용할 수 있습니다 .
그것은 걸릴 수 있습니다 여러 XML 파일 과 해당 파일의 모든에서 공통 XSD를 추출 .
sudo apt-get install php5-cli
및 실행 ./learn --help
--- 실제로 Java와 python 또는 ruby로 작성된 도구와의 차이점을 알 수 없습니다 :)
locality
필드 : 필드 이름을 참조하는 XML의 여러 장소에서 사용하는 경우 다른 요소보다 큰 locality
1 이상의 값은 예를 들면, 필요 root/item
와 root/something/item
다음, 다른 유형을 참조 --locality 2
최소한 필요
.Net을 설치 한 경우 XSD 스키마 및 클래스를 생성하는 도구가 기본적으로 이미 포함되어 있습니다.
나를 위해 XSD 도구는 다음 구조로 설치됩니다. 설치 디렉토리에 따라 다를 수 있습니다.
C:\Program Files\Microsoft Visual Studio 8\VC>xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.
xsd.exe -
Utility to generate schema or class files from given source.
xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/s] [/uri:]
xsd.exe <assembly>.dll|.exe [/outputdir:] [/type: [...]]
xsd.exe <instance>.xml [/outputdir:]
xsd.exe <schema>.xdr [/outputdir:]
일반적으로이 도구가 생성하는 클래스와 스키마는 특히 .Net 언어로 소비하려는 경우 다소 효과적입니다.
필자는 일반적으로 XML 문서를 가져 와서 /o:<your path>
플래그가 있는 XSD 도구를 통해 스키마 (xsd)를 생성 한 다음 /classes /L:VB (or CS) /o:<your path>
플래그를 사용하여 xsd 파일을 도구를 통해 다시 가져 와서 사용할 수있는 클래스를 얻습니다. 일상에서 .Net 프로젝트
원하는 모든 것이 XSD 인 경우 LiquidXML에는 XSD를 수행하는 무료 버전이 있으며 GUI를 제공하므로 원하는 경우 XSD를 조정할 수 있습니다. 어쨌든 요즘 나는 손으로 직접 XSD를 작성하지만이 앱 덕분에 모든 것이 가능합니다.
이것은 오래된 스레드이지만이 링크를 게시하는 것이 유용 할 수 있다고 생각했습니다. 방금이 도구를 찾았습니다 : xsd-gen XML에서 XML 스키마 생성
그리고 그것은 내가 필요한 것을 해냈습니다.