元素可以同时具有id和属性吗?

时间:2017-01-29 14:20:32

标签: xml database dtd

我知道这个问题可能很简单,但我真的需要知道这些东西。

这是我的意思的一个例子:

XML代码:

final ParseInstallation installation = ParseInstallation.getCurrentInstallation();
        installation.put("user", ParseUser.getCurrentUser());
        installation.saveInBackground()
                .continueWithTask(new Continuation<Void, Task<Void>>() {
                    @Override
                    public Task<Void> then(Task<Void> task) throws Exception {
                        if (task.isFaulted()) {
                            try {
                                ParseInstallation installation = ParseInstallation.getCurrentInstallation();
                                Class clazz = installation.getClass();
                                Method[] methods = clazz.getDeclaredMethods();
                                Method method1 = clazz.getDeclaredMethod("getCurrentInstallationController");
                                method1.setAccessible(true);
                                Object result = method1.invoke(installation);

                                Method method2 = result.getClass().getDeclaredMethod("clearFromDisk");
                                method2.setAccessible(true);
                                String result2=(String) method2.invoke(result);

                                Method method3 = result.getClass().getDeclaredMethod("clearFromMemory");
                                method3.setAccessible(true);
                                String result3=(String) method3.invoke(result);

                            } catch (Exception ex) {
                                ex.printStackTrace();
                            }
                        }
                        return null;
                    }
                })

此外,在这种情况下,DTD文件中的属性类型声明是什么? 也许&#39; CDATA&#39;?

2 个答案:

答案 0 :(得分:2)

您的示例显示了一个包含两个属性的元素:idquantity。 XML不限制元素可以拥有的属性数量,因此, 是的,元素可以同时具有id(属性)和其他属性。 /强>

DTD声明:

<!ELEMENT product (#PCDATA)>
<!ATTLIST product 
          id ID #REQUIRED
          quantity CDATA #REQUIRED>

或者,如果您必须提供以数字开头的id值,ID不允许Daniel Haley正确points out,则可以使用CDATA id

答案 1 :(得分:1)

在我看来是的,它可以兼得。 id只是一个类似数量的属性,每个xml元素都可以有n个属性。所以它应该有用。

但我无法帮助你解决第二个问题。我从未使用过DTD文件。 也许这个转换器可以帮助你:http://bsp.mits.ch/xsd2dtd/