View可见性状态invisible和有什么区别gone?
我正在学习W3Schools的XML属性.
作者提到了以下内容(强调我的):
XML元素与属性
Run Code Online (Sandbox Code Playgroud)<person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
Run Code Online (Sandbox Code Playgroud)<person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>在第一个例子中,性是一种属性.在最后,性是一个元素.两个示例都提供相同的信息.
关于何时使用属性以及何时使用元素没有规则.属性在HTML中很方便.在XML中,我的建议是避免它们.请改用元素.
避免使用XML属性?
使用属性的一些问题是:
- 属性不能包含多个值(元素可以)
- 属性不能包含树结构(元素可以)
- 属性不易扩展(用于将来的更改)
属性很难阅读和维护.使用元素数据.使用属性来获取与数据无关的信息.
那么作者的观点是一个着名的,或者这是XML中的最佳实践?
应该避免使用XML中的属性吗?
W3Schools还提到了以下内容(强调我的):
元数据的XML属性
有时ID引用分配给元素.这些ID可用于识别XML元素,其方式与HTML中的ID属性非常相似.此示例演示了这一点:
Run Code Online (Sandbox Code Playgroud)<messages> <note id="501"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> <note id="502"> <to>Jani</to> <from>Tove</from> <heading>Re: Reminder</heading> <body>I will not</body> </note> </messages>上面的ID只是一个标识符,用于标识不同的注释.它不是音符本身的一部分.
我在这里要说的是元数据(有关数据的数据)应该作为属性存储,并且数据本身应该存储为元素.
我已经阅读了Android开发人员指南中有关Fragments的文档,我发现有时他们会指定要使用Fragment标记属性android:name进行实例化的类,有时他们会使用class: attribute:
<fragment
android:name="com.example.news.ArticleReaderFragment"
android:id="@+id/viewer"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent" />
<fragment
class="com.example.android.apis.app.FragmentLayout$TitlesFragment"
android:id="@+id/titles"
android:layout_weight="1"
android:layout_width="0px"
android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)
是安卓:名称和类:互换?如果我在Eclipse中使用自动完成功能,它们都会显示相同的文档提示(即该属性提供了要实例化的类名).当要实例化的类具有与java文件名不同的名称时,可能必须使用第二个名称,例如FragmentLayout.java文件中的TitlesFragment?或者我可以使用语法package.fileDOTjava $ Class也使用android:name属性?
我想为Android Java类提供一些XML标签和属性的文档(我在另一个问题中询问过它).
是否可以在XML标记内注释一个或多个属性?/* */来自C的东西
我尝试过使用<!-- -->,但没有成功.
<element
attribute1="value1"
attribute2="value2"
<!-- attribute3="value3" (commented value) -->
>
Run Code Online (Sandbox Code Playgroud) 我想创建一个XML文件,用于存储Java程序的结构.我能够成功解析Java程序并根据需要创建标记.问题出现时,我尝试,包括我的标签中的源代码,因为Java源代码可以使用的实体引用广大和保留的字符,如&,<,>,&.我无法创建有效的XML.
我的XML应该是这样的:
<?xml version="1.0"?>
<prg name="prg_name">
<class name= "class_name>
<parent>parent class</parent>
<interface>Interface name</interface>
.
.
.
<method name= "method_name">
<statement>the ordinary java statement</statement>
<if condition="Conditional Expression">
<statement> true statements </statement>
</if>
<else>
<statement> false statements </statement>
</else>
<statement> usual control statements </statement>
.
.
.
</method>
</class>
.
.
.
</prg>
Run Code Online (Sandbox Code Playgroud)
像这样,但问题是条件表达式if或其他语句中有很多&或其他保留符号阻止XML得到验证.由于所有这些数据(源代码)都是由用户提供的,因此我无法控制它.逃避角色在时间上将是非常昂贵的.
我可以使用CDATA来转义元素文本,但它不能用于包含条件表达式的属性值.我正在使用Antlr Java语法来解析Java程序并获取标记的属性和内容.那么还有其他解决方法吗?
我写了一个简单的布局,它有一个EditText,但它显示以下警告信息:
"没有标签视图指向此文本字段"
尽管搜索,我发现这和它解决了警告信息,但并没有获得这两个属性之间的差异android:id和android:labelFor.有任何澄清吗?
我有一个包含多个列的表,其中一xml列是一列.我没有在查询中使用的命名空间.对于所有记录,XML数据始终是相同的结构.
create table #temp (id int, name varchar(32), xml_data xml)
insert into #temp values
(1, 'one', '<data><info x="42" y="99">Red</info></data>'),
(2, 'two', '<data><info x="27" y="72">Blue</info></data>'),
(3, 'three', '<data><info x="16" y="51">Green</info></data>'),
(4, 'four', '<data><info x="12" y="37">Yellow</info></data>')
Run Code Online (Sandbox Code Playgroud)
Name Info.x Info.y Info
----- ------- ------- -------
one 42 99 Red
two 27 72 Blue
three 16 51 Green
four 12 37 Yellow
Run Code Online (Sandbox Code Playgroud)
select Name, xml_data.query('/data/info/.').value('.', 'varchar(10)') as [Info]
from #temp
Run Code Online (Sandbox Code Playgroud)
它返回Name和Info列.我无法弄清楚如何在不使用命名空间的情况下提取属性值.例如,以下查询返回错误:
select Name, xml_data.query('/data/info/@x') …Run Code Online (Sandbox Code Playgroud) 这是我的源码xml的结构:
<root>
<DataSet Value="A">
<Data Value1="1" Value2="anythingA1" />
<Data Value1="2" Value2="anythingA2" />
<Data Value1="3" Value2="anythingA3" />
<Data Value1="4" Value2="anythingA4" />
<Data Value1="5" Value2="anythingA5" />
</DataSet>
</root>
Run Code Online (Sandbox Code Playgroud)
从中我喜欢创建一些变量,例如来自所有值为Value1 ="2"且所有值为Value1 ="5"的变量都应该导致myVar1与somethingA2和myVar2与anythingA5
我的approch看起来像这样
<xsl:variable name="myVarA" select="/DataSet/Data/[@Value1='2']/@Value2" />
Run Code Online (Sandbox Code Playgroud)
但是当然没有用,因为Value2不是Value1的孩子.
感谢任何提前提示!
XML属性中允许的最大字符数是否有标准?
我试过研究W3C财团,除了关于逃避特殊字符的一些注释之外,在字符限制上找不到任何东西.
xml-attribute ×10
xml ×6
android ×3
android-xml ×2
comments ×1
editbox ×1
java ×1
xml-comments ×1
xpath ×1
xslt ×1