Visual Studio IDE에서 XSD를 이용한 XML 검증
예전에 해본 적이 있다는 것을 알지만, 오늘은 작동이 안 되고, 방법을 설명해주는 곳을 찾을 수도 없습니다.수면 부족일 수도 있지만 그렘린이 의심됩니다.
XML 문서와 그것을 정의하는 XSD로 가득 찬 디렉토리를 가지고 있습니다.유효성 검사 실패를 알리도록 Visual IDE를 설정한 다음 주어진 컨텍스트에서 유효한 태그 및 속성의 인텔리센스 목록을 제공하려면 어떻게 해야 합니까?
시도해 본 내용:
- XML 문서로 프로젝트에 XSD를 추가했습니다.
- XML 스키마 목록에 XSD를 추가했습니다(XML / Schemas...).메뉴 항목)
- XML 문서에 schemaLocation과 noNamespaceSchemaLocation 특성까지 포함시켰습니다.
비주얼 스튜디오는 여전히 유용한 디버깅이나 편집 정보를 포기하지 않고 있습니다.2010년과 2008년 두번 다 해봤어요 (2008년에 해본 적이 있는 줄 알았어요)
업데이트: 다른 개발자에게 이것을 시도하게 했는데 그도 실패했습니다.그는 다른 XML 문서로 작업을 수행하고 작업을 수행했다는 것을 알고 있습니다.그런 다음 Oxygen XML Editor를 다운로드했는데 동일한 XML 파일과 XSD 파일에서 잘 작동하여 파일이 괜찮은 것 같습니다(또는 Oxygen이 더 관대한 / 유연한 . . ).
Visual Studio의 XML 문서를 사용자가 가지고 있는 XSD 파일과 연결해야 합니다.
XML 문서의 [속성] 창에 다음과 같은 내용이 표시됩니다.
XML 스키마 세트 편집기(Properties 창의 "Schemas" 텍스트 상자에 있는 (...) 생략을 클릭하면 열립니다)에서 스키마가 있는지 확인해야 합니다.또한, 그 다음에.
Use해당 스키마에 대한 열이 활성화되어 있습니다. 그렇지 않은 경우 클릭합니다. 옵션 드롭다운 목록이 표시됩니다.Use녹색 체크 표시가 있는 항목:Visual Studio의 Error List 창이 보이는지 확인합니다(메뉴 View > Error List).XML과 XSD 스키마 정의 간의 모든 불일치를 표시합니다.
이 모든 작업이 완료되면 Visual Studio XML 편집기에서 다음과 같은 파란색 스퀴글을 사용하여 편집기의 XML 문제를 강조 표시해야 합니다.
Visual Studio의 파일을 수동으로 연결할 필요가 없습니다. 두 파일을 모두 열어 놓고 네임스페이스를 올바르게 정의하면 XML 파일이 XSD 파일과 자동으로 일치합니다.
네임스페이스를 정의하려면:
XML 파일의 루트 요소에서:
<Data xmlns='http://yourdomain.com/yourschema.xsd'>
...
</Data>
XSD 파일의 스키마 요소에서:
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://yourdomain.com/yourschema.xsd"
xmlns:this="http://yourdomain.com/yourschema.xsd"
elementFormDefault="qualified">
...
</xs:schema>
targetNamespace 가 있을 때 스키마에서 Types를 사용하는 것에 대한 참고 사항
이 하고 는 는 을 하고 있기 입니다.targetNamespace에 붙여야 (서에에한는스에야다이다한가된)(다이e다야한n가에ed서,h에ayrod(e ).xmlns:this의에 합니다.<xs:schema />요소).
<!-- Define the type as normal -->
<xs:complexType name="Row">
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="Value" type="xs:float" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<!-- Use the type (note the "this:" prefix) -->
<xs:element name="Row" type="this:Row" minOccurs="0" maxOccurs="unbounded" />
여기서 또 다른 실패 지점은 Windows 7(윈도우 7)의 스키마 파일을 "차단"한다는 점입니다.디스크의 xsd 파일, Properties > General을 마우스 오른쪽 버튼으로 클릭하면 차단 해제 버튼이 나타납니다.이로 인해 VS2012에서 XML 유효성 검사가 실패했습니다.
에 속성 xsd 이 되어 가 포함되어 있습니까?"targetNamespace" /schema/@targetNamespacexml?xml 합니다.
예:
XSD:
<xs:schema .... targetNamespace="Datafile.xsd" ... >
XML:
<data xmlns="Datafile.xsd" >...</data>
참고 항목: Visual Studio 2010에서 XML/XSD intellense가 작동하지 않음
같은 문제가 있었는데 VS가 이미 스키마를 올바르게 참조하고 있었습니다.확인하려던 파일에 'xml' 파일 확장자가 없었음이 밝혀졌습니다.파일 이름 끝에 .xml을 추가하고 유효성 검사가 시작되었습니다.
언급URL : https://stackoverflow.com/questions/3161224/xml-validation-with-xsd-in-visual-studio-ide
'programing' 카테고리의 다른 글
| 선행 또는 후행 공백을 포함하는 MySQL 선택 필드 (0) | 2023.09.19 |
|---|---|
| SecurityContext - Spring 3.2.2에서 인증 개체를 찾을 수 없습니다. (0) | 2023.09.14 |
| 오류 2003(HY000):localhost(10061)에서 MySQL 서버에 연결할 수 없습니다. (0) | 2023.09.14 |
| 즐겨찾기 컨텐츠가 웹뷰에 올바르게 표시되지 않음 (0) | 2023.09.14 |
| 아두이노 HTTPS 지원 예정 (0) | 2023.09.14 |


