Android:“ CDATA”声明中需要属性类型

时间:2018-11-12 22:23:31

标签: android dtd cdata

第一个错误已解决,请阅读我对Daniel Haley答案的评论。

我是Android开发的新手,用于更改布局XML文件中图片的大小。

从那时起,我总是收到此错误:

  

错误:(1,151)元素“ LinearLayoutxmlns:android”的属性“ CDATA”的声明中需要属性类型。

我不知道这是在告诉我什么……Google似乎只用相似的代码给我很少的结果。

这是我的XML文件的内容:

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE LinearLayout [<!ELEMENT LinearLayout (ImageView|TextView)*><!ATTLIST LinearLayoutxmlns:android CDATA #REQUIREDandroid:layout_width CDATA #REQUIREDandroid:layout_height CDATA #REQUIREDandroid:background CDATA #REQUIREDandroid:gravity CDATA #REQUIREDandroid:orientation CDATA #REQUIREDandroid:paddingBottom CDATA #REQUIREDandroid:paddingLeft CDATA #REQUIREDandroid:paddingRight CDATA #REQUIREDandroid:paddingTop CDATA #REQUIREDandroid:theme CDATA #REQUIRED><!ELEMENT ImageView (#PCDATA)><!ATTLIST ImageViewandroid:id CDATA #REQUIREDandroid:layout_width CDATA #REQUIREDandroid:layout_height CDATA #REQUIREDandroid:paddingTop CDATA #REQUIREDandroid:src CDATA #REQUIRED><!ELEMENT TextView (#PCDATA)><!ATTLIST TextViewandroid:layout_width CDATA #REQUIREDandroid:layout_height CDATA #REQUIREDandroid:layout_gravity CDATA #REQUIREDandroid:layout_marginLeft CDATA #REQUIREDandroid:layout_marginTop CDATA #REQUIREDandroid:text CDATA #REQUIREDandroid:textSize CDATA #REQUIREDandroid:textStyle CDATA #REQUIRED>]>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/nav_header_height"
    android:background="@drawable/side_nav_bar"
    android:gravity="bottom"
    android:orientation="horizontal"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="@dimen/_80sdp"
        android:layout_height="@dimen/_80sdp"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:src="@drawable/pyroappappicon" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="@dimen/_10sdp"
        android:layout_marginTop="@dimen/_30sdp"
        android:text="@string/app_name"
        android:textSize="@dimen/_20sdp"
        android:textStyle="bold" />

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

在attlist声明中,您的属性名称不用空格分隔。

例如LinearLayoutxmlns:android(来自错误消息)应为LinearLayout xmlns:android

另一个示例是#REQUIREDandroid:layout_width应该是#REQUIRED android:layout_width

这是一个固定了attlist声明的版本。

它现在可以验证,但是由于我对android开发一无所知,所以我不知道您进行了哪些更改以及它们是否将按您的预期方式工作。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE LinearLayout [
<!ELEMENT LinearLayout (ImageView|TextView)*>
<!ATTLIST LinearLayout
    xmlns:android CDATA #REQUIRED
    android:layout_width CDATA #REQUIRED
    android:layout_height CDATA #REQUIRED
    android:background CDATA #REQUIRED
    android:gravity CDATA #REQUIRED 
    android:orientation CDATA #REQUIRED 
    android:paddingBottom CDATA #REQUIRED 
    android:paddingLeft CDATA #REQUIRED 
    android:paddingRight CDATA #REQUIRED 
    android:paddingTop CDATA #REQUIRED 
    android:theme CDATA #REQUIRED>
<!ELEMENT ImageView (#PCDATA)>
<!ATTLIST ImageView
    android:id CDATA #REQUIRED
    android:layout_width CDATA #REQUIRED
    android:layout_height CDATA #REQUIRED
    android:paddingTop CDATA #REQUIRED
    android:src CDATA #REQUIRED>
<!ELEMENT TextView (#PCDATA)>
<!ATTLIST TextView
    android:layout_width CDATA #REQUIRED
    android:layout_height CDATA #REQUIRED
    android:layout_gravity CDATA #REQUIRED
    android:layout_marginLeft CDATA #REQUIRED
    android:layout_marginTop CDATA #REQUIRED
    android:text CDATA #REQUIRED
    android:textSize CDATA #REQUIRED
    android:textStyle CDATA #REQUIRED>
]>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/nav_header_height"
    android:background="@drawable/side_nav_bar"
    android:gravity="bottom"
    android:orientation="horizontal"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="@dimen/_80sdp"
        android:layout_height="@dimen/_80sdp"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:src="@drawable/pyroappappicon" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="@dimen/_10sdp"
        android:layout_marginTop="@dimen/_30sdp"
        android:text="@string/app_name"
        android:textSize="@dimen/_20sdp"
        android:textStyle="bold" />

</LinearLayout>

这里是doctype声明全都在同一行的另一个版本:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE LinearLayout [<!ELEMENT LinearLayout (ImageView|TextView)*><!ATTLIST LinearLayout xmlns:android CDATA #REQUIRED android:layout_width CDATA #REQUIRED android:layout_height CDATA #REQUIRED android:background CDATA #REQUIRED android:gravity CDATA #REQUIRED android:orientation CDATA #REQUIRED android:paddingBottom CDATA #REQUIRED android:paddingLeft CDATA #REQUIRED android:paddingRight CDATA #REQUIRED android:paddingTop CDATA #REQUIRED android:theme CDATA #REQUIRED><!ELEMENT ImageView (#PCDATA)><!ATTLIST ImageView android:id CDATA #REQUIRED android:layout_width CDATA #REQUIRED android:layout_height CDATA #REQUIRED android:paddingTop CDATA #REQUIRED android:src CDATA #REQUIRED><!ELEMENT TextView (#PCDATA)><!ATTLIST TextView android:layout_width CDATA #REQUIRED android:layout_height CDATA #REQUIRED android:layout_gravity CDATA #REQUIRED android:layout_marginLeft CDATA #REQUIRED android:layout_marginTop CDATA #REQUIRED android:text CDATA #REQUIRED android:textSize CDATA #REQUIRED android:textStyle CDATA #REQUIRED>]>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/nav_header_height"
    android:background="@drawable/side_nav_bar"
    android:gravity="bottom"
    android:orientation="horizontal"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="@dimen/_80sdp"
        android:layout_height="@dimen/_80sdp"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:src="@drawable/pyroappappicon" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="@dimen/_10sdp"
        android:layout_marginTop="@dimen/_30sdp"
        android:text="@string/app_name"
        android:textSize="@dimen/_20sdp"
        android:textStyle="bold" />

</LinearLayout>