XML과 XSD의 차이점은 무엇입니까?
XML(Extensible Markup Language)과 XSD(XML Schema Definition)의 차이점은 무엇입니까?
사실 XSD는 XML 그 자체입니다.이것의 목적은 다른 XML 문서의 구조를 검증하는 것입니다.XSD는 XML에 필수적인 것은 아니지만 특정 목적을 위해 XML을 사용할 수 있음을 보장합니다.XML에는 적합한 형식과 구조의 데이터만 포함되어 있습니다.
예를 들어보자.
<root>
<parent>
<child_one>Y</child_one>
<child_two>12</child_two>
</parent>
</root>
이를 위해 xsd를 설계합니다.
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="parent">
<xs:complexType>
<xs:sequence>
<xs:element name="child_one" type="xs:string" />
<xs:element name="child_two" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XSD로 불가능한 것: 목록이 매우 작기 때문에 먼저 작성하고 싶습니다.
1) 다른 노드/속성의 값을 사용하여 노드/속성의 유효성을 검사할 수 없습니다.
2) 이는 제한 사항입니다. XSD 파일에 정의된 요소는 하나의 데이터 형식으로만 정의되어야 합니다.[ 위의 예에서 다음과 같이,<child_two>
다른 곳에 나타남<parent>
node, int 이외의 데이터 형식은 정의할 수 없습니다.
3) 요소 및 속성의 유효성 검사를 무시할 수 없습니다. 즉 요소/속성이 XML에 나타나는 경우 해당 XSD에서 잘 정의되어야 합니다.의 사용방법은<xsd:any>
허락하지만 나름대로 규칙이 있습니다유효성 검사 오류를 초래하는 준수.저도 비슷한 접근법을 시도했지만, 확실히 성공적이지 못했습니다. 여기 질문과 답변이 있습니다.
XSD에서 가능한 것은 다음과 같습니다.
1) XML 노드의 적절한 계층을 테스트할 수 있습니다.[xsd는 어떤 자식이 어떤 부모 등 아래에 있어야 오류로 계산될 것인지 정의합니다. 위의 예에서 child_two는 root의 바로 자식이 될 수 없지만 "parent" 태그의 자식이며 이 자식은 "root" 노드의 자식입니다. 계층 구조가 있습니다.]
2) 노드 값의 데이터 유형을 정의할 수 있습니다.[위의 예제에서 child_two는 숫자 이외의 다른 데이터를 가질 수 없습니다.]
3) 사용자 지정 data_type을 정의할 수도 있습니다. [예: 노드의 경우]<month>
중 수 는 12 . 따라서 모든 12개월 이름을 열거값으로 쓰는 새로운 데이터 유형에 모든 12개월을 정의해야 합니다.따라서 모든 12개월 이름을 열거 값으로 쓰는 새로운 데이터 유형에서 모든 12개월을 정의해야 합니다.validation은 입력 XML에 이러한 12개의 값 이외의 다른 값이 포함된 경우 오류를 표시합니다. ]
4) minOccurs 및 maxOccurs를 사용하여 요소의 발생을 제한할 수 있으며 기본값은 1과 1입니다.
.. 그리고 더 많은...
XSD:
XSD(XML 스키마 정의)는 XML(Extensible Markup Language) 문서의 요소를 형식적으로 설명하는 방법을 지정합니다.
Xml:
XML은 데이터를 설명하기 위해 설계되었습니다.이것은 하드웨어 뿐만 아니라 소프트웨어와도 독립적입니다.
그것은 다음과 같은 것들을 강화합니다.
-데이터 공유.
-플랫폼에 의존하지 않습니다.
-데이터의 가용성 향상.
차이점:
XSD는 XML을 기반으로 작성됩니다.
XSD는 문서에 나타날 수 있는 요소와 구조를 정의하는 반면 XML은 그렇지 않습니다.
XSD는 데이터를 적절하게 해석할 수 있도록 보장하는 반면 XML은 그렇지 않습니다.
XSD 문서는 XML로 유효성이 확인되지만, 그 반대의 경우도 있습니다.
XSD는 XML보다 오류를 더 잘 잡아냅니다.
XSD는 인코딩할 실제 데이터와 관련된 문서에서 사용할 수 있는 요소를 정의합니다.
:
1/12/2010으로 표현된 날짜는 1월 12일 또는 12월 1일을 의미할 수 있습니다.XSD 문서에서 날짜 데이터 형식을 선언하면 XSD에서 지정한 형식을 따르도록 합니다.
단순 XML 예:
<school>
<firstname>John</firstname>
<lastname>Smith</lastname>
</school>
위 XML의 XSD(설명):
<xs:element name="school">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
여기:
xs:element : 요소를 정의합니다.
xs:sequence : 하위 요소가 언급된 순서로만 표시됨을 나타냅니다.
xs:complexType : 다른 요소를 포함함을 나타냅니다.
xs:simpleType : 다른 요소를 포함하지 않음을 나타냅니다.
유형: 문자열, 10진수, 정수, 부울, 날짜, 시간,
- 간단히 말해서 xsd는 XML 데이터를 특정 유형으로 표현하고 검증하는 또 다른 방법입니다.
추가 속성을 사용하면 여러 작업을 수행할 수 있습니다.
xsd에서 모든 작업을 수행하는 것은 xml보다 간단합니다.
XML 대 XSD
XML은 잘 형성된 문서에서 데이터를 구조화하기 위한 요소와 속성의 구문을 정의합니다.
XSD는 앞서 DTD와 마찬가지로 유효한 XML 문서에서 요소와 속성의 어휘와 문법을 정의할 수 있도록 함으로써 XML에서 eXtensibility의 기능을 강화합니다.
기본적으로 XSD 파일은 XML 파일의 모양을 정의합니다.XML 파일의 구조를 정의하는 스키마 파일입니다.그래서 가능한 필드가 무엇인지, 어떤 크기가 될 것인지를 지정합니다.
XML 파일은 XSD에 정의된 규칙을 사용하기 때문에 XSD의 인스턴스입니다.
XML은 f.ex. HTML보다 훨씬 더 넓은 응용 프로그램을 가지고 있습니다. 그것은 본질적이거나 기본적인 "응용 프로그램"을 가지고 있지 않습니다.따라서 웹 페이지도 허용된 내용에 따라 관리된다는 사실을 별로 신경 쓰지 않을 수도 있지만 작성자의 입장에서는 XML 문서에 포함될 수도 있고 포함되지 않을 수도 있는 내용을 정확하게 정의하고 싶을 수도 있습니다.
데이터베이스를 설계하는 것과 같습니다.
XML 기술의 특징은 텍스트적인 특성을 가지고 있다는 것입니다.XSD를 사용하면 PHP와 같은 텍스트 처리 도구에 "플러그인"할 수 있는 데이터 구조 정의 프레임워크를 가질 수 있습니다.따라서 데이터 자체를 조작할 수 있을 뿐만 아니라 구조를 매우 쉽게 변경하고 문서화할 수 있으며, 프론트엔드를 자동 생성할 수도 있습니다.
이렇게 볼 때 XSD는 데이터(XML)와 데이터 처리 도구 사이의 "글루" 또는 "미들웨어"입니다.
언급URL : https://stackoverflow.com/questions/2333998/what-is-the-difference-between-xml-and-xsd
'programing' 카테고리의 다른 글
Swift에서 Change 문자InRange는 어떻게 작동합니까? (0) | 2023.10.29 |
---|---|
불법 논변예외: 탐색 대상 xxxx는 이 NavController에 알 수 없습니다. (0) | 2023.10.29 |
프레임 포인터는 언제 생략해야 합니까? (0) | 2023.10.29 |
장고에서 jQuery/Ajax와 함께 포스팅하려면 어떻게 해야 합니까? (0) | 2023.10.29 |
기토시스 대 기토라이트? (0) | 2023.10.29 |