code

Eclipse 유효성 검사 오류 "문서에 대한 문법 제약이 감지되지 않음"을 수정하는 방법은 무엇입니까?

codestyles 2020. 12. 14. 08:12
반응형

Eclipse 유효성 검사 오류 "문서에 대한 문법 제약이 감지되지 않음"을 수정하는 방법은 무엇입니까?


Eclipse 3.5.2에서 XML 스키마 경고 메시지가 표시됩니다.

No grammar constraints (DTD or XML schema) detected for the document.

application.xml 파일 :

<?xml version="1.0" encoding="UTF-8"?>
<application
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/application_5.xsd"
  version="5">

</application>

경고를 비활성화하고 싶지 않습니다. Eclipse에서 XML 문서의 유효성을 올바르게 검사하려면 어떻게해야합니까?


이 문제를 만족스럽게 해결했는지 확실하지 않지만 Eclipse 3.6에서 일부 Spring 구성 파일을 사용하는 동안 오늘이 게시물을 보았습니다. 문제를 마우스 오른쪽 버튼으로 클릭하고 삭제할 때까지 Eclipse의 문제보기에서 오류가 사라지는 것을 얻을 수 없습니다 .

나는 재 검증을하면 다시 올 것이라고 생각했고 실제로 문제가 있었지만 지금까지는 그렇지 않았습니다. 문제는 오류를 표시하지 않는 거의 동일한 Spring 구성 파일이 있다는 것입니다.

때때로 물건이 Eclipse에 갇혀있는 것처럼 보일 것입니다. 이유는 모르겠지만이 파일과 파일이 편집기와 동기화되지 않고 강제로 새로 고침을해야하는 경우에는이를 수락해야한다고 생각합니다.


문제를 일으키는 파일의 맨 위에 이것을 두는 것이 저에게 효과적입니다.

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

이는 의도적 으로 DTP 또는 XSD가없는 XML 문서에 대한 경고를 해제하는 또 다른 방법입니다 .

  1. 메뉴 환경 설정으로 이동합니다.
  2. 탐색 메뉴, 즉 대화 상자의 왼쪽 프레임에서 XML> XML 파일> 유효성 검사를 선택합니다.
  3. 구성 영역, 즉 대화 상자의 오른쪽 프레임에서 다음을 선택합니다. 파일 유효성 검사> 지정된 문법 없음> 무시 (선택 상자) 기본 설정은 경고입니다.)

나는 전문가가 아니라 학습자입니다. 실수로 문제를 해결하는 쉽고 어리석은 방법을 찾았습니다. 당신이해야 할 일은 :

누릅니다 ctrl + shift + F(Eclipse에서 파일 형식을 지정하는 단축키).

이 문제가 해결되지 않으면 다음 눌러 상기 키를 이 특정 라인의 시작
?xml version="1.0" encoding="UTF-8"?하지 다른 곳을 (왜하지 안하지만,이 작품. 내가 아는 매우 행복 할 것이다 왜 여기 사람이 알고있는 경우)

그런 다음을 누르고 ctrl + shift + F저장하십시오.

경고는 사라질 것입니다. 적어도 나를 위해, 당신은 스스로 시도 할 수 있습니다 ...


이 경고가 표시되면 XML 유효성 검사 기능 (XML 인스턴스 편집기와 다릅니다!)이 적용 할 DTD 또는 XSD를 알지 못했음을 의미합니다. 물론 이것은 XML 인스턴스가 스키마를 준수하는지 실제로 확인하지 않았 음을 의미합니다.

따라서 이것은 유용한 경고이므로 끄지 않아야합니다 (유효성 검사 메뉴 기능을 사용하고 무언가를 수행 할 것으로 예상하는 경우).

기본 설정을 사용하여 스키마를 알릴 수 있습니다.

  • 기본 설정 / XML 카탈로그 / 사용자 지정 항목 열기
  • 추가 ...를 클릭하십시오.
  • "위치"에서 사용할 XSD 파일을 입력하십시오.
  • 키 유형 "스키마 위치"를 선택합니다 (xsi : schemaLocation이있는 경우).
  • 파일 내용과 일치하는 URL (위치의 두 번째 부분)을 "키"로 입력하십시오.
  • 확인을 누릅니다.
  • 문제보기로 이동하여 유효성 검사 경고를 삭제합니다.
  • XML 파일을 마우스 오른쪽 버튼으로 클릭하고 "Validate"를 다시 선택하십시오.

일부 공용 ID 및 스키마 위치는 이미 "플러그인 지정 항목"에 포함되어 있습니다 (특히 WSTP가 설치된 경우). 이러한 네임 스페이스의 경우 경고가 표시되지 않습니다 (확인을 위해 시스템에서 제공 한 복사본을 사용하므로).


이클립스에서 " 문서에 대해 감지 된 문법 제약 (dtd 또는 xml 스키마) 없음 "을 방지합니다 . xsd 스키마 파일을 xml 카탈로그에 추가하는 데

"창 \ 기본 설정 \ 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 파일을 닫았다가 다시 열고 스키마를 위반하기 위해 몇 가지 변경을 수행하면 알림을 받아야합니다.


나는 application.xsd의 V1.4돌아가서 약간의 성공을 거두었습니다 . 누구든지 JavaEE 버전이 작동하지 않는 이유를 설명 할 수 있다면 감사하겠습니다.

<?xml version="1.0" encoding="UTF-8"?>
<application
  xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
                      http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"
  version="1.4">

XML 파일의 맨 처음에 이것을 추가하십시오.

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

Change RelativeLayout to your defined root layout ,then find xml file in left side, in layout folder, right click and select Validate.


Here's the working solution for this problem:

Step 1: Right click on project and go to properties

Step 2: Go to 'libraries' and remove the project's ' JRE system library'

Step 3: Click on 'Add library'-->'JRE System Library' -->select 'Workspace default JRE'

Step 3: Go to 'Order and Export' and mark the newly added ' JRE system library'

Step 4: Refresh and Clean the project

Eureka! It's working :)


Here's what worked for me. I was using schemas without version numbers (e.g. spring-beans.xsd, and not spring-beans-4.1.xsd) and they probably got updated upstream. I assume the problem was that Eclipse kept a dirty cache of the old versions.

Fix :
1. Go to Window -> Preference -> Network Connection -> Cache
2. Remove all cached schemas.
3. Delete all the no grammar constraints problems in problem view.
4. Re-validate the project.


What I found worked for me was to remove the schemaLocation attribute completely then right click in the outline view and goto edit namespaces, then adding the schema location hint into the resulting dialog.


It can be because of your proxy settings. See this and this. You can try attaching javadoc by URL to a library without it. If it is okay in your browser, but not in your editor, then it's a connection problem. I solved the same problem by asking the admin about the proxy settings. Although all other applications did work, eclipse didn't, so I had to enter the config "manually". It would be great if developers added a button "check connection"...


Solution For Eclipse:

add <!DOCTYPE something> to the begining of each problematic XML,

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

you can write anything for doctype, but basically it's supposed to be manifest, activity, etc. from what I understand


I was just having this problem last night (using eclipse V.kepler). I am completely new to java and eclipse and I am trying to teach myself how to make an android app. While I was working on the lessons offered at developers.android.com I had input this into my main_activity_actions.xml file:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<!--  Search should appear as an action button -->
<item android:id="@+id/action_search"
      android:icon="@drawable/ic_action_search"
      android:title="@string/action_search"
      android:showAsAction="ifRoom"/>

</menu>

This gave me the same error as OP. I tried following the suggestion of adding

<!DOCTYPE project> 

just below the first line and it solved the issue.


What worked for me is to right click the xml-file in the tree (usually on the left hand side in eclipse) and clicked the validate. Since then, the warning never came back.


for me it worked like a charm when I cut it (ctrl a + ctrl - X) and saved it back again (ctrl-s) ! the warning "No grammar constraints (DTD or XML schema) detected for the document" was gone for good!!

참고URL : https://stackoverflow.com/questions/4833057/how-to-fix-eclipse-validation-error-no-grammar-constraints-detected-for-the-doc

반응형