XML 인스턴스 문서에서 XSD 스키마를 생성하는 도구가 있습니까? [닫은]


146

XML 인스턴스 문서를 가져 와서 해당 XSD 스키마를 출력하는 도구를 찾고 있습니다.

필자는 생성 된 XSD 스키마가 수동으로 스키마를 만드는 것과 비교할 때 (선택적이거나 반복적 인 요소 또는 데이터 제약 조건을 처리하지 않을 것임) 비교할 때 제한적이지만 적어도 빠른 시작점 역할을 할 수 있음을 알고 있습니다.

답변:


65

마이크로 소프트 XSD 추론 도구는 좋은, 무료 솔루션입니다. XmlSpy (@Garth Gilmour가 언급 함) 또는 OxygenXML Editor와 같은 많은 XML 편집 도구에도 해당 기능이 있습니다. 그러나 다소 비쌉니다. BizTalk Server에는 XSD 유추 도구도 있습니다.

편집 : 방금 .net XmlSchemaInference 클래스를 발견 했으므로 .net을 사용하는 경우 다음을 고려해야합니다.


1
몇 달 후, XDR에서 XSD 로의 빠른 변환을 수행 할 수있는 훌륭한 솔루션을 알려 주셨습니다. 감사!
bethlakshmi 2012

6
이 도구 (xsd.exe)의 다운로드를 찾기 어려웠지만 이미 C : \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin의 시스템에있었습니다. 누군가를 도울 수 있도록 공유하겠다고 생각했습니다.
oob

2
누군가 Visual Studio를 설치하지 않은 경우 xsd를 다운로드 할 수있는 대체 링크는 다음과 같습니다. juliankay.com/development/download-xsd-exe
MD

5
디렉토리는 xsd.exeWindows 7에서 변경된 것으로 보입니다 . 많은 Microsoft SDKs디렉토리에 디렉토리가 있으므로 (더 이상 Visual Studio에 의존하지 않는 것 같 습니까?)이 중 하나 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools입니다. "경로의 잘못된 문자"에 대한 오류를 방지하기 위해 xml이 포함 된 디렉토리에서 실행해야했지만 파일 이름이 길어질 수 있습니다.
Yahoo Serious

아직 8GB 이상의 여유 RAM이있는 200MB XML 파일에 대해 OutOfMemoryException이 발생하여 MS XSD 추론 도구를 사용하는 데 문제가 있습니까?
Felipe Sabino

54

오픈 소스 및 크로스 플랫폼 옵션 인 inst2xsd를 Apache의 XMLBeans 에서 사용할 수 있습니다 . 나는 그것이 매우 유용하고 쉽다는 것을 알았습니다.

다운로드, 압축 풀기 및 재생 만하면됩니다 (Java 필요).


좋은 팁, 그것은 정말 많은 도움이되었습니다, thx!
IAdapter 2018 년

2
세상에 이것은 모든 Powershell 헛소리보다 훨씬 낫다! 특히 XSD 파일이 없기 때문에!
클로이

3
매력처럼 작동 :: cd <xml_bean_bin_directory>; ./inst2xsd -design ss -simple-content-smart smart-enumerations 4 <input_file.xml> -outDir <output_Directory>
diaryfolio


3
XMLBeans는 폐기 된 Apache 프로젝트의 홈인 attic.apache.org 로 옮겨졌습니다 . 즉, 2012 년 이후로 업데이트되지 않았습니다.
Magnilex

51

Trang 이 가장 좋은 옵션입니다. 오픈 소스 및 크로스 플랫폼 (Java가 필요하지만)

트랑 웹 사이트에서 :

Trang은 XML에 대해 서로 다른 스키마 언어를 변환합니다. 다음 언어를 지원합니다

  • RELAX NG (XML 구문)
  • RELAX NG 컴팩트 구문
  • XML 1.0 DTD
  • W3C XML 스키마

지원되는 스키마 언어로 작성된 스키마는 W3C XML 스키마가 입력 용이 아닌 출력용으로 만 지원되는 것을 제외하고 다른 지원되는 스키마 언어로 변환 될 수 있습니다.

Trang은 하나 이상의 예제 XML 문서에서 스키마를 유추 할 수도 있습니다.

다운로드 링크


Trang은 또한 하나 이상의 XM1 문서에서 XSD 추론을 수행하기 위해 OxygenXML에 통합 된 도구입니다. 처음에는 여기에서 잘 작동하는 것 같습니다.
redcalx 2018 년

4
xml 파일에서 xsd를 생성하기 만하면 trang이 가장 빠르고 가장 쉬운 IMHO입니다.
kriver

2
trang 문서는 약간 얇습니다. 스키마를 생성하려면을 실행하십시오 $ trang file.xml schema.xsd.
Joe Mornin

Windows에서 실행 : java -jar trang.jar file.xml schema.xsd
Alexey Obukhov

내 XML 샘플의 다양한 위치에 동일한 형식으로 표시되는 하위 구조가 있었기 때문에 Trang은 반복을 감지하고 최소한의 XSD를 생성하는 데 완벽한 역할을했습니다. 아주 좋아요!
Tomislav Nakic-Alfirevic

17

VS2010에서 XML 파일을 편집기에로드하는 경우 XML 메뉴 >> 스키마 작성을 클릭하십시오.


3
그리고 더 높은 버전에서
Jay Jay Jay

12

또한 Github에서XML schema learner 사용할 수 있습니다 .

그것은 걸릴 수 있습니다 여러 XML 파일해당 파일의 모든에서 공통 XSD를 추출 .


1
이 도구는 PHP로 작성되었으므로 설정하기가 쉽지 않습니다.
79E09796

5
@ 79E09796 cli php 설치 sudo apt-get install php5-cli및 실행 ./learn --help--- 실제로 Java와 python 또는 ruby로 작성된 도구와의 차이점을 알 수 없습니다 :)
edorian

1
방금 Windows에서 시도했지만 설치하지 않고 PHP 5.4에서 훌륭하게 작동했습니다. PHP와 XML 스키마 학습자 모두 압축을
풀고

온 작은 주석 locality필드 : 필드 이름을 참조하는 XML의 여러 장소에서 사용하는 경우 다른 요소보다 큰 locality1 이상의 값은 예를 들면, 필요 root/itemroot/something/item다음, 다른 유형을 참조 --locality 2최소한 필요
샤디

10

.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 프로젝트


6

원하는 모든 것이 XSD 인 경우 LiquidXML에는 XSD를 수행하는 무료 버전이 있으며 GUI를 제공하므로 원하는 경우 XSD를 조정할 수 있습니다. 어쨌든 요즘 나는 손으로 직접 XSD를 작성하지만이 앱 덕분에 모든 것이 가능합니다.

http://www.liquid-technologies.com/


4

Java 세계에서 일하는 경우 -intelliJ 아이디어 는 xsd 생성 및 xsd 생성의 samle xml을 포함한 광범위한 XML 지원을 제공하며 플러그인을 사용하면 xslt 디버거를 얻을 수 있습니다. -나중에 jaxb와 같은 도구를 사용하려는 경우 특히 좋습니다.


2
그리고 이것은 무료 커뮤니티 에디션 Idea에서도 제공됩니다.
lbalazscs


3

이것은 오래된 스레드이지만이 링크를 게시하는 것이 유용 할 수 있다고 생각했습니다. 방금이 도구를 찾았습니다 : xsd-gen XML에서 XML 스키마 생성

그리고 그것은 내가 필요한 것을 해냈습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.