Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
(연관된 글이 1개 있습니다.)

Visual Studio - Error List: "Could not find schema information for the ..."

Visual Studio에서 프로젝트에 추가한 XML 파일을 열면,

<?xml version="1.0" encoding="utf-8" ?>

<keys>

    <add name="t1" value="test1" />
    <add name="t2" value="test2" />

</keys>

"Error List"에 다음과 같은 "Messages" 항목이 뜹니다.

xml_schema_1.png

Could not find schema information for the attribute 'value'.
Could not find schema information for the element 'add'.

위와 같은 검증 메시지를 피하기 위해서는 XSD 파일을 만들어 주면 되는데, 이에 대해서는 다음의 글에서 잘 설명하고 있습니다.

How to: Select the XML schemas to use
; https://learn.microsoft.com/en-us/visualstudio/xml-tools/how-to-select-the-xml-schemas-to-use?view=vs-2019

정리하면, 공통으로 사용할 스키마는 "%VSInstallDir%\xml\Schemas" 경로,

xml_schema_3.png

즉 "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Xml\Schemas" 디렉터리에 넣어두고 해당 XML 파일의 속성 창을 통해,

xml_schema_2.png

스키마를 선택합니다. 스키마 파일(.xsd)은 직접 만들어도 되지만, 비주얼 스튜디오의 "XML" / "Create Schema" 메뉴를 선택하면 자동으로 현재 XML 파일의 스키마를 유추해 다음의 경로에 xsd 파일을 만듭니다. (만들어진 xsd 파일 경로는 자동으로 "XML Schemas" cache 목록에 추가됩니다.)

%LOCALAPPDATA%\Temp\

또는, 온라인에서 제공되는 기능을 사용해도 좋습니다.

XSD/XML Schema Generator
; https://www.freeformatter.com/xsd-generator.html

예를 들어, 이 글의 xml 파일에 대해 "Create Schema" 메뉴를 실행하면 다음과 같은 식의 xsd 파일(%LOCALAPPDATA%\Temp\TestData.xsd)이 생성됩니다.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="keys">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" name="add">
                    <xs:complexType>
                        <xs:attribute name="name" type="xs:string" use="required" />
                        <xs:attribute name="value" type="xs:string" use="required" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>




하지만, 공용이 아니거나 그냥 프로젝트 파일에 포함시켜 관리를 하고 싶을 수도 있습니다. 그런 경우에는 그냥 xsd 파일을 xml과 동일한 폴더에 복사하고 다음과 같이 schema 파일을 지정하면 됩니다.

<?xml version="1.0" encoding="utf-8" ?>

<keys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.test.com TestData.xsd">

    <add name="t1" value="test1" />
    <add name="t2" value="test2" />

</keys>

그나저나... 제가 가진 2대의 PC에서 동일한 프로젝트로 테스트를 했는데 한 대는 "Could not find schema information for the ..." 메시지를 보이지만 다른 한 대는 그런 기능이 없습니다. 어떤 차이가 있는지 모르겠군요. ^^ (혹시 해당 기능을 켜고 끄는 방법을 아시는 분은 덧글 부탁드립니다.)

(첨부 파일은 이 글의 테스트 코드를 포함합니다.)




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 3/9/2024]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 121  122  123  124  [125]  126  127  128  129  130  131  132  133  134  135  ...
NoWriterDateCnt.TitleFile(s)
10889정성태2/14/201623337.NET Framework: 543. C++의 inline asm 사용을 .NET으로 포팅하는 방법 - 두 번째 이야기파일 다운로드1
10888정성태2/14/201621013.NET Framework: 542. 닷넷 - 특정 클래스가 로드되었는지 여부를 알 수 있을까?
10887정성태2/3/201623110VC++: 94. MPX(Memory Protection Extensions) 테스트파일 다운로드1
10886정성태2/3/201624806개발 환경 구성: 281. Intel MPX Runtime Driver 수동 설치
10885정성태2/2/201623114오류 유형: 317. Sybase.Data.AseClient.AseException: The command has timed out.
10884정성태1/11/201623872개발 환경 구성: 280. 닷넷에서 SAP Adaptive Server Enterprise 데이터베이스 사용파일 다운로드1
10882정성태1/6/201624807Windows: 113. 윈도우의 2179, 26143, 47001 TCP 포트 사용 [1]
10881정성태1/3/201625459오류 유형: 316. 윈도우 10 - 바탕/돋음 체가 사라져 한글이 깨지는 현상 [2]
10880정성태12/16/201524073오류 유형: 315. 닷넷 프로파일러의 오류 코드 정보
10879정성태12/16/201525832오류 유형: 314. Error : DEP0700 : Registration of the app failed. error 0x80070005
10878정성태12/9/201529320디버깅 기술: 75. UWP(유니버설 윈도우 플랫폼) 앱에서 global::System.Diagnostics.Debugger.Break 예외 발생 시 대응 방법
10877정성태12/9/201533001VC++: 93. std::thread 사용 시 R6010 오류 [2]
10876정성태11/26/201528903.NET Framework: 541. SignedXml을 이용한 ds:Signature만드는 방법 [3]파일 다운로드1
10875정성태11/26/201534343개발 환경 구성: 279. signtool.exe의 다중 서명 기능 [2]
10874정성태11/26/201529685개발 환경 구성: 278. 인증서와 인증서를 이용한 코드 사인의 해시 구분
10873정성태11/25/201527782.NET Framework: 540. C# - 부동 소수 계산 왜 이렇게 나오죠? (2) [3]파일 다운로드1
10872정성태11/24/201536893.NET Framework: 539. C# - 부동 소수 계산 왜 이렇게 나오죠? (1) [1]
10871정성태11/23/201530320오류 유형: 313. SignTool Error: No certificates were found that met all the given criteria.
10870정성태11/23/201532032오류 유형: 312. 윈도우 10 TH2 (버전 1511) 업데이트가 안되는 경우 [1]
10869정성태11/23/201528559오류 유형: 311. certutil 실행 오류 - 0x80070057 [1]
10868정성태11/20/201527440제니퍼 .NET: 25. 제니퍼 닷넷 적용 사례 (5) - RestSharp 라이브러리의 CPU High 현상파일 다운로드1
10867정성태10/18/201531511.NET Framework: 538. Thread.Abort로 인해 프로세스가 종료되는 현상
10866정성태10/14/201525386.NET Framework: 537. C# - Reflection의 박싱 없이 값 형식을 다루는 방법파일 다운로드1
10865정성태10/13/201526298.NET Framework: 536. Thread.Abort의 스레드 종료 지연파일 다운로드1
10864정성태10/12/201523849.NET Framework: 535. aspnet.config 파일의 설정을 읽는 방법
10863정성태10/9/201529690.NET Framework: 534. ASP.NET 응용 프로그램이 예외로 프로세스가 종료된다면?
... 121  122  123  124  [125]  126  127  128  129  130  131  132  133  134  135  ...