XSD 파일의 목적은 무엇입니까?


90

C # (. NET)에서 XML 파일을 쿼리 할 수 ​​있는데 XSD 파일이 필요한 이유는 무엇입니까? 특정 XML 파일의 메타 데이터 파일이라는 것을 알고 있습니다. XSD에서 관계를 지정할 수 있지만 그 기능은 무엇입니까?

XML

<?xml version="1.0" encoding="utf-8" ?>
<Root>
  <Customers>
    <Customer CustomerID="GREAL">
      <CompanyName>Great Lakes Food Market</CompanyName>
      <ContactName>Howard Snyder</ContactName>
      <ContactTitle>Marketing Manager</ContactTitle>
      <Phone>(503) 555-7555</Phone>
      <FullAddress>
        <Address>2732 Baker Blvd.</Address>
        <City>Eugene</City>
        <Region>OR</Region>
        <PostalCode>97403</PostalCode>
        <Country>USA</Country>
      </FullAddress>
    </Customer>
  </Customers>
  <Orders>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>6</EmployeeID>
      <OrderDate>1997-05-06T00:00:00</OrderDate>
      <RequiredDate>1997-05-20T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-05-09T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>3.35</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>8</EmployeeID>
      <OrderDate>1997-07-04T00:00:00</OrderDate>
      <RequiredDate>1997-08-01T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-07-14T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>4.42</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
  </Orders>
</Root>

Order제공된에 따라 요소 에서 데이터를 얻고 싶습니다 CustomerID.

또한 : XSD에서 관계를 제공하는 목적은 무엇입니까?


stackoverflow.com/questions/2333998/… , 참조 할 수도 있습니다!
AVA

답변:


106

XSD 파일은 XML 파일이 특정 형식을 따르는 지 확인하는 데 사용됩니다.

그 점에서 그들은 이전에 존재했던 DTD 와 유사 합니다.

XSD와 DTD의 가장 큰 차이점은 XSD는 XML로 작성되며 읽기 쉽고 이해하기 쉽다는 것입니다.


감사합니다. xml 파일에서 데이터를 가져 오기 위해 Linq를 사용하여 c3.net에서 xsd 파일을 쿼리 할 수 ​​있습니까? 어떻게?
Red Swan

@Lalit-Linq는 그것과 아무 관련이 없습니다.
Oded

또 다른 중요한 차이점은 DTD에서 XSD에서 쉽게 수행 할 수있는 많은 작업을 수행 할 수 없다는 것입니다.
mort

그래서 데이터를 얻기 위해 xml 파일 만 사용할 수 있습니까? 스키마 파일을 생성 할 필요가 없습니다. (지금은 유효성을 검사하고 싶지 않습니다.) 각 요소의 ID 맵에 따라 다양한 레코드가있는 xml의 데이터를 얻고 싶습니다.
Red Swan

4
@Lalit-관계에 대해 신경 쓰지 않고 어떤 규칙 (XSD로 코딩 됨)을 준수하는지 확인할 필요가없는 경우 XSD를 사용하지 말고 XML을 직접 쿼리하십시오.
Oded

48

XML 스키마 (XSD 파일)가 없으면 XML 파일은 상대적으로 자유로운 요소 및 속성 집합입니다. XSD 파일은 허용되는 요소 및 속성과 순서를 정의합니다.

일반적으로 XML은 메타 언어입니다. XSD 파일은 해당 메타 언어 내에서 특정 언어를 정의합니다. 예를 들어 XSD 파일에 XHTML 1.0의 정의가 포함되어있는 경우 XML 파일은 다른 형식이 아닌 XHTML 1.0에 맞아야합니다.


19

질문에서 C #을 언급하므로 XSD가 C # 인터페이스와 유사한 역할을 수행하는 것으로 생각하는 데 도움이 될 수 있습니다.

인터페이스가 클래스가 구현해야하는 것을 정의하는 것과 유사한 방식으로 XML의 '모양'을 정의합니다.


4
구현할 클래스와 인터페이스를 가져 오면 클래스가 올바른지 알 수 있습니다. 같은 방법으로 xml 파일을 가져 와서 xsd이면 xml이 올바른지 알 수 있습니다.
Garry

16

XSD는 XML 문서의 어휘와 구조를 제한합니다.

XML은 모두 계약관한 것이며 XSD는 XML 자체의 기본 정의를 넘어서 계약을 구성하고 전달하는 수단을 제공합니다.


12

또한 질문은 다음과 같습니다. xsd에서 관계를 제공하는 목적은 무엇입니까?

외부 당사자의 도구 또는 이와 유사한 도구에 대해 XML을 생성하려고한다고 가정합니다. 해당 도구에 대해 올바르게 사용하기 위해 어떤 구조를 따를 수 있는지 어떻게 알 수 있습니까? 스키마에 씁니다. 마찬가지로 다른 사람이 도구를 사용하도록하려면 해당 사용자가 따르도록 스키마를 작성합니다. 자신의 XML을 확인하는데도 유용 할 수 있습니다.


8

XSD (XML Schema Definition)를 이해하기 전에 설명하겠습니다.

스키마 란?

예를 들면; emailID : peter # gmail

@, .com 또는 .net 또는 .org가 없기 때문에 위의 emailID가 유효하지 않음을 확인할 수 있습니다.

peter@gmail.com과 같은 이메일 스키마를 알고 있습니다.

결론 : 스키마는 데이터의 유효성을 검사하지 않고 구조의 유효성을 검사합니다.

XSD는 실제로 XML 스키마 구현 중 하나입니다. 우리가 가진 다른 것

XSD를 사용하여 XML 데이터의 유효성을 검사합니다.


7

XSD는 XML 문서를 구성하는 방법을 지정하는 공식 계약입니다. XML 문서의 유효성을 검사하거나 코드를 생성하는 데 자주 사용됩니다.


5

XSD 파일은 XML 스키마 정의이며 주어진 XML 문서가 예상 한 내용을 준수하는지 확인하는 표준 방법을 제공하는 데 사용됩니다.


5

.xsd 파일을 XML 스키마라고합니다. XML 스키마를 통해 주어진 XML의 특정 구조 (순서, 횟수, 속성, 중첩 방법 등)가 필요할 수 있습니다. XML 입력에 대한 스키마가 있으면 확인할 수 있습니다. 여기에는 포함해야하는 데이터가 포함되어 있으며, 스키마 유효성 검사기를 호출하는 몇 줄만 있으면됩니다.


4

xsd 파일은 xml 파일의 스키마입니다. 발생할 수있는 요소와 제한 사항 (예 : 양, 순서, 경계, 관계 등)을 정의합니다.

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