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

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에서 관계를 제공하는 목적은 무엇입니까?



답변

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

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

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


답변

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

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


답변

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

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


답변

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

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


답변

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

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


답변

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

스키마 란?

예를 들면; emailID : peter # gmail

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

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

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

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

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


답변

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