Android项目中XML文件的模式在哪里?

时间:2009-03-03 06:21:08

标签: xml android schema dtd

Android上使用的XML文件(如AndroidManifest.xml或布局)的模式(DTD或XML模式)在哪里?

5 个答案:

答案 0 :(得分:15)

模式不作为xml文件存在。模式取决于程序使用的UI类。有一个稍好的讨论here

答案 1 :(得分:5)

通常,在XML中定义命名空间并不一定是真正的现有URL,而只是全球唯一的String(因此人们更喜欢使用自己的URL)。当然,如果此URL包含XML架构(或更糟糕的是DTD),那就太好了。如果有人创建Android Ressource Schemata也会很好。我可以帮助他作为CS的学士论文。 - Solymosi教授,柏林

答案 2 :(得分:2)

似乎没有记录XML模式,但是这里有一个包含所有布局对象及其允许属性的有用列表:

http://developer.android.com/reference/android/R.styleable.html#lfields

答案 3 :(得分:0)

曾经搜寻同一主题,以了解android studio如何完成XML的自动完成和工作,我也很希望找到一些XSD之类的东西,但是:

在Android中,我们混合使用静态和动态DOM定义:

1-某些文件是使用类和注释定义的,请参见清单(例如:要获得正确的信息,您应该 可能会使用合并的清单,但这超出了 该文档)。

2-使用命名约定从资源中读取其他信息,以查找包含与给定XML标记相关的attr的可样式化。 例如,如果我们将标签识别为与View子类相对应 在布局文件(例如“ TextView”)中,我们找到了相应的 样式化,查看它包含的attrs并注册DOM扩展 对应于这些属性资源的给定标签。看到 AttributeProcessingUtil和SubtagsProcessingUtil用于读取的代码 styleables和AndroidDomExtender作为插入的扩展 DOM系统。

3-有时可样式化是静态确定的,但是会动态读取attrs以便与所使用的平台版本保持最新 在项目中。这是通过@Styleable注释完成的。

https://android.googlesource.com/platform/tools/adt/idea/+/refs/heads/mirror-goog-studio-master-dev/android/src/org/jetbrains/android/dom/README.md

例如,这是在android studio的源代码中定义形状可绘制XML的方式:

@DefinesXml
@Styleable("GradientDrawable")
public interface Shape extends DrawableDomElement {
  @Styleable("DrawableCorners")
  List<DrawableDomElement> getCornerses();

  @Styleable("GradientDrawableGradient")
  List<DrawableDomElement> getGradients();

  @Styleable("GradientDrawablePadding")
  List<DrawableDomElement> getPaddings();

  @Styleable("GradientDrawableSize")
  List<DrawableDomElement> getSizes();

  @Styleable("GradientDrawableSolid")
  List<DrawableDomElement> getSolids();

  @Styleable("GradientDrawableStroke")
  List<DrawableDomElement> getStrokes();
}

可设置样式(例如GradientDrawablePadding)在android的attrs.xml中定义

https://android.googlesource.com/platform/tools/adt/idea/+/refs/heads/mirror-goog-studio-master-dev/android/src/org/jetbrains/android/dom/drawable/Shape.java

答案 4 :(得分:0)

如果您在识别 http://schemas.android.com/apk/res/android 等架构时遇到问题,您可以在设置(或首选项)> 下添加它语言和框架 > 架构和 DTD。单击“忽略的模式和 DTD”下的 + 号并添加模式 URL。您不应再收到代码错误/警告。