xml 리소스 파일 인 Visual Studio에서 .resx 파일을 생성하면 XSD 스키마가 동일한 파일에 포함됩니다. (예 참조) 다른 도구가이 파일을 해석 할 수 있으며 "유효"한 것 같습니다. 그럼에도 불구하고 w3schools에 대한 모든 정보를 찾을 수 없습니다. 이론은 xsd 파일을 작성하고이를 xml 파일에서 참조하도록 가르친다. 일반적으로 유효성 검사에는 xsd 파일과 xml 파일이 제공됩니다.XML 파일에 XSD 스키마 정의를 포함 할 수 있습니까?
주어진 예제와 같이 xml 파일에서 xsd 스키마를 정의하는 것이 유효합니까? 그렇다면 적용 범위는 어디입니까? 노드에 포함됩니까? 더 많은 설명이 포함 된 링크를 제공 할 수 있다면 잘 부탁드립니다. 응답
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Key">
<value>Value</value>
</data>
</root>
편집 의견을 adrianos합니다 : 나는 참으로 W3C의 웹 사이트를 검토해야한다. 읽고 이해하는 것이 훨씬 더 어려워요. 지금은 그랬지만 그 짧은 시간에 나는 전체 그림을 얻을 수 없습니다. 찾은 내용 :
- Extensible Markup Language (XML) 1.0 (Fifth Edition)에는 xml 스키마를 포함하거나 참조하는 방법에 대한 설명이 없습니다.
- XML 스키마 XML Schema Part 0: Primer Second Edition, XML Schema Part 1: Structures Second Edition 및 XML Schema Part 2: Datatypes Second Edition에 대한 세 가지 사양 문서가 있습니다. 파트 0과 2에서 스키마를 포함하거나 참조하는 것과 관련된 것을 찾지 못했습니다. 그러나 제 1 부에이 언급 :
- schemaLocation 속성 2.6 Schema-Related Markup in Documents Being Validated, XML 구성표를하는 등의 것을 나는 아직 어떤 힌트를 볼 수 없습니다 4.3 Layer 3: Schema Document Access and Web-interoperability
웹에 액세스하는 방법 Attribute Declaration for the 'schemaLocation' attribute
물론 유효합니다. 참조는 www.w3c.org이어야하며, w3schools는 (IMO) 끔찍하고 불완전한 참조입니다. –
왜 물론입니까? ;) 루트 요소에 schema라는 요소가 포함되어 있으면 전체 파일에 대한 스키마입니다 ...? –
1) 그렇습니다. 인라인 스키마에 대한 지원은 필수는 아니지만 표준 (스키마 자체에)입니다. 2) 아니요, 어디서부터 시작되었는지 만 확인합니다 (따라서 전체 문서는 검증 할 수 없지만 형제 자매 만 유효성을 검사합니다). 내 생각에 (그러나 나는 더 이상 알지 못한다) ID와 네임 스페이스에 대한 몇 가지 트릭을 사용하여 루트 자체를 검증 할 수도 있지만 ... –