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에서 관계를 제공하는 목적은 무엇입니까?
답변
답변
XML 스키마 (XSD 파일)가 없으면 XML 파일은 상대적으로 자유로운 요소 및 속성 집합입니다. XSD 파일은 허용되는 요소 및 속성과 순서를 정의합니다.
일반적으로 XML은 메타 언어입니다. XSD 파일은 해당 메타 언어 내에서 특정 언어를 정의합니다. 예를 들어 XSD 파일에 XHTML 1.0의 정의가 포함되어있는 경우 XML 파일은 다른 형식이 아닌 XHTML 1.0에 맞아야합니다.
답변
질문에서 C #을 언급하므로 XSD가 C # 인터페이스와 유사한 역할을 수행하는 것으로 생각하는 데 도움이 될 수 있습니다.
인터페이스가 클래스가 구현해야하는 것을 정의하는 것과 유사한 방식으로 XML의 ‘모양’을 정의합니다.
답변
XSD는 XML 문서의 어휘와 구조를 제한합니다.
- XSD가 없으면 XML 문서 는 W3C XML 권장 사항에 지정된대로 올바른 형식 을 유지 하기위한 규칙 만 따르면됩니다 .
- XSD를 사용하는 경우 XML 문서는 W3C XML 스키마 권장 사항 에 따라 XSD에 대해 유효한 것으로 간주되기 위해 해당 요소 및 속성의 이름과 값에 적용되는 추가 제약 조건을 준수해야합니다 .
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 문서의 유효성을 검사하거나 코드를 생성하는 데 자주 사용됩니다.