나는이 dtd를 가지고있다 : http://fast-code.sourceforge.net/template.dtd
그러나 xml에 포함시킬 때 경고를 얻는다 : 문서에 대한 문법 제약 (DTD 또는 XML 스키마)이 감지되지 않았다. xml은 다음과 같습니다
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE templates PUBLIC "//UNKNOWN/" "http://fast-code.sourceforge.net/template.dtd">
<templates>
<template type="INSTANCE_OF_CLASS">
<description>Used to Create instance of class</description>
<variation>asasa</variation>
<variation-field>asasa</variation-field>
<class-pattern>asasa</class-pattern>
<getter-setter>setter</getter-setter>
<allowed-file-extensions>java</allowed-file-extensions>
<number-required-classes>1</number-required-classes>
<allow-multiple-variation>false</allow-multiple-variation>
<template-body>
<![CDATA[
// Creating new instance of ${class_name}
final ${class_name} ${instance} = new ${class_name}();
#foreach ($field in ${fields})
${instance}.${field.setter}(${field.value});
#end
]]>
</template-body>
</template>
</templates>
편집 : xml을 변경했는데 지금이 오류가 발생합니다.
요소 유형 “템플릿”의 내용은 “(설명, 변형?, 변형 필드?, 허용 다변량?, 클래스 패턴?, 게터 설정?, 허용 된 파일 확장명?, 숫자 필요)와 일치해야합니다. 클래스?, 서식 파일)).
답변
내 경우에는 단순히 태그 <!DOCTYPE xml>
뒤에 after 를 추가 하여이 성가신 경고를 해결했습니다 <?xml ... >
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
답변
이것은 Eclipse 3.7.1에서 나를 위해 일했습니다 : 환경 설정 창으로 이동 한 다음 XML-> XML 파일-> 유효성 검사로 이동하십시오. 그런 다음 오른쪽에있는 환경 설정 패널의 파일 유효성 검증 섹션에서 “문법 지정되지 않음”환경 설정의 드롭 다운 상자에서 무시를 선택하십시오. 경고가 사라지도록 파일을 닫았다가 다시 열어야 할 수도 있습니다.
(이 질문은 오래되었다는 것을 알고 있지만 경고를 검색 할 때 처음 발견 한 것이므로 다른 검색자를 위해 여기에 답변을 게시하고 있습니다.)
답변
대답:
아래 DTD의 각 부분에 대한 의견. 자세한 내용은 공식 사양 을 참조하십시오 .
<!
DOCTYPE ----------------------------------------- correct
templates --------------------------------------- correct Name matches root element.
PUBLIC ------------------------------------------ correct Accessing external subset via URL.
"//UNKNOWN/" ------------------------------------ invalid? Seems useless, wrong, out-of-place.
Safely replaceable by DTD URL in next line.
"http://fast-code.sourceforge.net/template.dtd" - invalid URL is currently broken.
>
간단한 설명 :
매우 기본적인 DTD는 다음 두 번째 줄과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE nameOfYourRootElement>
<nameOfYourRootElement>
</nameOfYourRootElement>
상해:
DTD는 합의 된 데이터 형식을 설정하고 그러한 데이터의 수신을 확인하는 역할을합니다. 이들은 다음을 포함하여 XML 문서의 구조를 정의합니다.
- 법적 요소 목록
- 특수 문자
- 문자열
- 그리고 훨씬 더
예 :
<!DOCTYPE nameOfYourRootElement
[
<!ELEMENT nameOfYourRootElement (nameOfChildElement1,nameOfChildElement2)>
<!ELEMENT nameOfChildElement1 (#PCDATA)>
<!ELEMENT nameOfChildElement2 (#PCDATA)>
<!ENTITY nbsp " ">
<!ENTITY author "Your Author Name">
]>
위 줄의 의미 …
Line 1) “nameOfYourRootElement”로 정의 된 루트 요소
Line 2) 요소 정의 시작
Line 3) “nameOfYourRootElement1″및 “nameOfYourRootElement2″로 정의 된 루트 요소 자식
Line 4) 데이터로 정의되는 하위 요소 입력 #PCDATA
데이터 유형으로 정의되어 5 호선) 아이 요소, #PCDATA
6 호선)의 경우 확장
에이  
문서를 XML 파서에 의해 구문 분석 할 때
7 호선)의 경우 확장 &author;
에이 Your Author Name
문서를 XML 파서에 의해 구문 분석 할 때
정의의 라인 8) 끝
답변
실제 솔루션 :
<!DOCTYPE something>
문제가있는 각 XML의 시작 부분에 추가
xml 태그 뒤 <?xml version="1.0" encoding="utf-8"?>
당신은 doctype을 위해 무엇이든 쓸 수 있지만, 기본적으로 그것은 내가 이해 한 것에서 명시 적이거나 활동적이어야합니다.
답변
XML 카탈로그에 스키마를 추가하려고 했습니까?
“문서에 대해 문법 제약 (dtd 또는 xml 스키마)이 감지되지 않음”을 피하기 위해 아래의 XML 카탈로그에 xsd 스키마 파일을 추가하는 데 사용합니다.
“창 \ 환경 설정 \ xml \ xml 카탈로그 \ 사용자 지정 항목”.
오른쪽의 “추가”버튼을 클릭하십시오.
예:
<?xml version="1.0" encoding="UTF-8"?>
<HolidayRequest xmlns="http://mycompany.com/hr/schemas">
<Holiday>
<StartDate>2006-07-03</StartDate>
<EndDate>2006-07-07</EndDate>
</Holiday>
<Employee>
<Number>42</Number>
<FirstName>Arjen</FirstName>
<LastName>Poutsma</LastName>
</Employee>
</HolidayRequest>
이 XML에서 xsd를 생성하고 저장했습니다 : /home/my_user/xsd/my_xsd.xsd
위치 : /home/my_user/xsd/my_xsd.xsd
키 유형으로 : 네임 스페이스 이름
키로 : http://mycompany.com/hr/schemas
xml 파일을 닫았다가 다시 열고 스키마를 위반하도록 일부 변경을 수행하면 알림을 받아야합니다.
답변
DOCTYPE 태그 추가 …
이 경우 :
<!DOCTYPE xml>
추가 후 :
<?xml version="1.0" encoding="UTF-8"?>
그래서:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
답변
새로운 깨끗한 방법은 다음과 같이 XML을 작성하는 것입니다.
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE rootElement>
<rootElement>
....
</rootElement>
위의 Eclipse Juno +에서 작동합니다