Dlaczego ta linia xmlns: android = "http://schemas.android.com/apk/res/android" musi być pierwsza w pliku xml układu?


Dlaczego ta linia jest potrzebna w pliku układu XML?
xmlns:android="[url=http://schemas.android.com/apk/res/android"]http://schemas.android.com/apk/res/android"[/url]

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W języku XML deklarowana jest wyspecjalizowana przestrzeń nazw. Właściwie kiedy to robisz:
<LinearLayout android:id>
</LinearLayout>

Zamiast wywoływać
android: id
, xml użyje

http://schemas.android.com/apk/ RES/android: ID
http://schemas.android.com/apk/res/android%3aid
być wyjątkowym. Zwykle ta strona nie istnieje (jest to identyfikator URI, a nie adres URL), ale czasami jest to adres URL wyjaśniający użytą przestrzeń nazw.
Przestrzeń nazw jest używana w taki sam sposób, jak nazwa pakietu w aplikacji Java.
Tutaj
http://www.w3schools.com/xml/xml_namespaces.asp
wyjaśnienie.

Jednolity identyfikator zasobów (URI)
Jednolity identyfikator zasobu (URI) to ciąg znaków, który
identyfikuje zasób internetowy.
Najpopularniejszym identyfikatorem URI jest Uniform Resource Locator (URL), który
określa adres domeny w Internecie. Inny, mniej powszechny typ
URI to jednolita nazwa zasobu (URN).

W naszych przykładach będziemy używać tylko adresów URL.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Aby zrozumieć, dlaczego
xmlns: android = “[url=http://schemas.android.com/apk/res/android]http://schemas.android.com/apk/res/android[/url]”
powinno być pierwszym w pliku układu xml, zrozumiemy komponenty na przykładzie

Sample
::
<FrameLayout xmlns:android="[url=http://schemas.android.com/apk/res/android"]http://schemas.android.com/apk/res/android"[/url]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/container" >
</FrameLayout>

Jednolity kod zasobów (URI
http://en.wikipedia.org/wiki/U ... ifier

) :
  • W informatyce jednolity identyfikator zasobu (URI) to ciąg znaki używane do identyfikacji nazwy zasobu.
  • Ta identyfikacja umożliwia interakcję z widokami zasób w sieci, zwykle w sieci WWW, przy użyciu określonych plików protokoły.

Przykład:
[url=http://schemas.android.com/apk/res/android:id]http://schemas.android.com/apk/res/android:id[/url]
to identyfikator URI tutaj
Przestrzeń XML
http://en.wikipedia.org/wiki/XML_namespace

nazwy:
  • Przestrzenie nazw XML są używane do dostarczania unikatowych nazwanych elementów i atrybuty w dokumencie XML.
    xmlns: android
    opisuje przestrzeń nazw android.
  • Jest używany w ten sposób, ponieważ jest to wybór projektu Google dla obsługa błędów w czasie kompilacji.
  • Załóżmy również, że piszemy własny widżet
    textview
    z innym w porównaniu z Androidem
    textview
    , przestrzeń nazw Androida pomaga rozróżnia nasz niestandardowy widżet
    textview
    i widżet Android
    textview
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

opis dotyczy

przestrzeń
http://www.w3schools.com/xml/xml_namespaces.asp
Nazwy XML
Korzystając z przedrostków w XML, należy zdefiniować tzw. Przestrzeń nazw dla prefiksu. Przestrzeń nazw jest definiowana przez atrybut xmlns w znaczniku początkowym elementu. Deklaracja przestrzeni nazw ma następującą składnię. xmlns: prefix = "URI".

Uwaga
: Przestrzeń nazw URI nie jest używana przez parser do wyszukiwania informacji.
Celem jest nadanie przestrzeni nazw unikalnej nazwy. Jednak firmy często używają przestrzeni nazw jako wskaźnika do strony internetowej zawierającej informacje o przestrzeni nazw.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

To jest tylko deklaracja przestrzeni nazw XML. Używamy tej przestrzeni nazw, aby wskazać, że wymienione poniżej atrybuty należą do Androida. Dlatego zaczynają się od „

android

: "
W rzeczywistości możesz tworzyć własne atrybuty niestandardowe. Dlatego, aby zapobiec konfliktom nazw, gdy 2 atrybuty mają takie same nazwy, ale zachowują się inaczej, poprzedzamy „

android:

”, aby wskazać, że są to atrybuty Androida.
Dlatego ta deklaracja przestrzeni nazw musi być zawarta w otwierającym tagu widoku głównego pliku XML.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:


xmlns:android

definiuje przestrzeń nazw systemu Android. Ten atrybut powinien zawsze mieć wartość „http://schemas.android.com/apk/ res/android”.
cm.

http:// developer.android.com/manual/themes/manifest/manifest-element.html
http://developer.android.com/g ... .html
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

  • Xmlns oznacza przestrzeń nazw xml.
  • Został zaprojektowany, aby uniknąć konfliktów nazw w xml.
  • Aby uniknąć kolizji nazw w inny sposób, musimy poprzedzić każdy element.
  • aby uniknąć ponownego użycia przedrostka w każdym tagu xml, używamy bardziej wyspecjalizowanego głównego xml. Dlatego mamy etykietę xmlns:android=” http://schemas.android.com/apk/res/android http://schemas.android.com/apk/res/android
  • Teraz android tutaj oznacza po prostu, że przypisujemy przestrzeń nazw " http://schemas.android.com/apk/ res/android http://schemas.android.com/apk/res/android" do niego.
  • Ta przestrzeń nazw nie jest adresem URL, ale identyfikatorem URI, znanym również jako URN (Uniform Resource Name), który jest rzadko używany zamiast identyfikatora URI.
  • Z tego powodu system Android będzie odpowiedzialny za identyfikację elementów związanych z systemem Android w dokumencie xml, którymi będzie android: xxxxxxx itd. Bez tej przestrzeni nazw android: xxxxxxx nie zostanie rozpoznany.


W kategoriach laika

:
bez xmlns: android = ”

http://schemas.android.com/apk/res/android
http://schemas.android.com/apk/res/android
„Tagi związane z systemem Android nie zostaną rozpoznane w naszym dokumencie XML układu.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:


xmlns:android

to jest tag początkowy do definiowania przestrzeni nazw Androida w systemie Android. Jest to standardowa konwencja zdefiniowana przez programistę Google Android. jeśli używasz zarówno domyślnego układu, jak i niestandardowego, musisz użyć tej przestrzeni nazw.

Definiuje przestrzeń nazw systemu Android. Ten atrybut powinien zawsze mieć wartość „

http://schemas.android.com/apk/ res/android
http://schemas.android.com/apk/res/android
".

Z

dokumentacja pozycji
http://developer.android.com/g ... .html
<manifes>
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Myślę, że jest to jasne w przypadku przestrzeni nazw, ponieważ możemy tworzyć własne atrybuty, a jeśli atrybut określony przez użytkownika jest taki sam jak w systemie Android, pozwala to uniknąć konfliktu przestrzeni nazw.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

xmlns:android="[url=http://schemas.android.com/apk/res/android"]http://schemas.android.com/apk/res/android"[/url]

To jest formularz xmlns: android = "@ +/id". Teraz, aby się do niego odwołać, używamy na przykład
android:layout_width="wrap_content"
android:text="Hello World!"

Innym xmlns jest
xmlns:app="[url=http://schemas.android.com/apk/res-auto"]http://schemas.android.com/apk/res-auto"[/url]

który ma postać xmlns: app = "@ +/id", a jego użycie jest podane poniżej
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W XML nazwy elementów są definiowane przez programistę. Często prowadzi to do konfliktów podczas próby mieszania dokumentów XML z różnych aplikacji XML. Użytkownik lub aplikacja XML nie będzie wiedziała, jak radzić sobie z tymi różnicami. Konfliktów nazw w XML można łatwo uniknąć, używając przedrostka nazwy. Używając przedrostków w XML, należy zdefiniować przestrzeń nazw dla prefiksu. Przestrzeń nazw można określić za pomocą atrybutu xmlns w znaczniku początkowym elementu. Deklaracja przestrzeni nazw ma następującą składnię. xmlns: prefix = "URI".
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

xmlns:android="[url=http://schemas.android.com/apk/res/android"]http://schemas.android.com/apk/res/android"[/url]


opis
: to jest przestrzeń nazw xml
i

URL :

"

http://schemas.android.com/apk/RES/android
http://schemas.android.com/apk/res/android
„nic oprócz

XSD

co to jest [definicja schematu XML]: czyli definicja reguł dla pliku XML.
Przykład:
<LinearLayout 
xmlns:android="[url=http://schemas.android.com/apk/res/android"]http://schemas.android.com/apk/res/android"[/url]
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"><EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:hint="User Name"
/>
</LinearLayout>

Pozwól mi wyjaśnić

jakie są te zasady?

.
  • W powyższym pliku XML zdefiniowaliśmy już layout_width dla naszego układu, JEŚLI zdefiniujesz ten sam atrybut za drugim razem, gdy pojawi się błąd.
  • Jest tam EditText, ale jeśli chcesz dodać kolejny EditText, nie ma problemu.


Te rodzaje reguł są zdefiniowane w XML XSD: „

http://schemas.android.com/apk/res/android
http://schemas.android.com/apk/res/android

"
trochę późno, ale mam nadzieję, że to ci pomoże.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

To jest deklaracja przestrzeni nazw XML wskazująca, że ​​atrybuty znajdujące się w grupie widoków, w której jest spowolniona, są powiązane z systemem Android.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się