Howdy, hope you don't mind but from time to time I'm gonna have to take a swig because strangely enough I'm feeling warm as I do this video Temperatures have been in the 50s lately and suddenly it's in the 70s today. So what are you gonna do anyway? I want to talk about blogging or more specifically how blogging is Difficult and it sounds weird coming from someone like me. So I'm gonna explain it, you know At the beginning of the month had one of my long-time online friends decide that she was going to stop blogging Now we both started our pinnacle blogs and I have to say it that way because I started blogging Three years before she did but my most popular blog and her blog started pretty much around the same time in 2008 and When she started out she was writing about three posts a week Whereas my first three years. I was actually averaging over 300 Articles a year That's just me. That's just how I was Anyway, she started out with the three and then at some point it became two articles a week then last year there was some point she started going to one article a week and Then she changed up the focus of her blog a little bit after getting some coaching Trying to be more business directed and then at the beginning of May. She decided, you know what I'm done She had different business goals and decided that blogging wasn't a part of it And so she shut it down and I'm kind of depressed along with a lot of other people because we enjoyed her writing She's probably one of the best online Networkers you've ever met and you know that was kind of sad and And You know you wish you could continue blogging, but she said she wasn't gonna close it down because you just never know and I Thought about that because you know blogging does take some time, but it's not just writing Because the beginning of this week this other guy who I don't think he's a longtime blogger But his claim to fame is that at this point he's up to 134 ebooks Goodness, you know, I guess I need to get up get going here since I only have a couple I have other books, but I have to get going anyway He is one of these guys who used to advocate writing between five and eight thousand word long blog posts I just can't imagine eight thousand thing all the time. I can't imagine a five thousand all the time I just wrote a post that ended up being fifty six hundred words and that Way out of my room. I mean I write fast, but you know fifty six hundred words takes a while to put together So anyway, he decided that he was gonna stop taking comments now this is a guy who used to talk a lot about how you get people to come by by Responding to comments and how you should be going to other blogs and visiting and whatever and his reason for Disabling comments is he said it felt too much like work having to respond to comments Wow Really now if I was getting two or three hundred comments on my blog posts I might say wow, that's a lot whole lot of work trying to get to that I'm nowhere close to that actually he wasn't close to that either But if this guy is trying to put out all this other stuff I mean if he's really trying to write five to eight thousand word Post every single time and he's putting out ebooks like their water You know, maybe you don't kind of have that time I mean, you know blogging is one of those kind of things where There's a lot of people who try to start blogging and find out that they can't and one bit of advice that I always give I've written it multiple times on my blog I've probably said it in another video somewhere over all these years and I've said it in interviews when I've given interviews is That my recommendation to people who say they want to start a blog or they asked me should they be blogging? I say okay. Here's what you do you sit down and you write ten articles if it takes you a day If it takes you a week if it takes you a month see if you can write ten articles If you can write ten articles Not only can you blog but you now have ten articles that you can program into your blog to go live at different times So you've already got some content willing to go if you can't write ten articles Don't even start blogging because you're just going to be wasting your time. You're wasting the space There's nothing that looks worse than having a blog that ends. It just ends and it's there I mean the blog is fear as we call it is replete with tons of blogs that people have stopped writing. I finally had to go through my blog reader a few weeks ago to Get rid of a lot of blogs because they hadn't written since 2014 and I really had you know I knew the names, but I hadn't realized that a lot of those people had stopped writing and you know, you just feel Something you know, I'm not necessarily sure what it is, but you kind of feel a loss You're not really sure where those people are some of those people are connected to on social media But for a lot of those people the only time I ever really got to talk to them Happen to be on their blogs or when they came to visit mine because what happens often is when people stop blogging they stop Visiting and commenting on new blogs as well. So blogging really isn't as easy as people think it is It's not always about the writing. I mean, you know, like I said when I first started My I'm just sharing blog. I was writing about 300 articles a year a little bit more than that Now I'm down to a point where I've tried to write at least one article of Week on I'm just sharing and one article a week on my business blog Which is called Mitch's blog and if I get to my other three blogs that week cuz you know really got three blogs Then I get to them because I write for other people as well. So, you know, it's not necessarily easy It's hard But it's one of those kind of things where if you love Writing if you feel you have something to say, it's a lot of fun and you can make money off of it Now I will tell you the truth. I have not geared myself really towards making money off of it I'm thinking about it though.   I mean, if I'm gonna do all this writing imagine We'll start trying to make more money from it. I'm writing for myself than others. Wouldn't you think? So that's my thought for today, but I'd like to hear from, you know, you guys if you do blog What do you think? Do you think that blogging is hard? You think it's easy? Do you think it's a shame when people stop blogging or when people stop answering comments or you know, do you care at all? Let me know. Y'all take care. Hope you have a wonderful weekend


Welcome back from the short break. Our next talk is by Alex Paul Gonzalez. It's on a laptop by KDE. How does KDE conceive a device? All right. So, well, thanks again for putting up with me once more. And, well, while I'm repeating, I'm still going to introduce myself because, well, this presentation is going to be possibly the weirdest presentation I've ever done. I've always been talking about code and programs and executing applications and, well, Android and KDevelop and stuff like that. This time we're going to talk about hardware, which is a subject that, well, as in KDE, we don't know a lot about and, well, me myself. I don't know a lot about either. But, well, I'm super happy to be here and to be talking about that. In general, in KDE, we make software, right? We program. We think a lot about how people are going to use our software. And we, well, try to make everything very flexible. But then in the end, we make software, right? And our software, without any exception, needs to be running on hardware. So I'm really, really sure that all of you in your trajectory in KDE, have faced this, well, awkward conversation where people are telling you. So I hear that you work on this Linux thing, this KDE thing. Well, what should I buy? I want to use it, this thing. In the beginning, I had these kind of questions from my family and my friends. And, well, well, you can always say, well, you just buy anything because Linux works everywhere. It's amazing. It's brilliant. Well, what you still have are telling them, well, to wipe their operating system, to wipe what the provider they bought their laptop from, well, worked on putting there. And, well, change it into something that, well, me and another group of geeks have been working on. Admittedly, thousands and thousands of geeks, but still geeks on our, well, free time. Free time or professional time. But in general, we need to have something that we can tell people to use, to love and to embrace. And at the same time, we need to get closer to the users. Like I said on my other presentation, if you were there, one of the specific problems that I've detected since I've been working in KDE is that we are a bit far away from our users. Sometimes we need to strengthen this feedback loop to make sure that if there's an issue, they can get back at us and that when we provide something, that they can leverage it as soon as possible. And, well, this kind of ties to this project that we're going to talk about, which is what we ended up calling the KDE Slimbook. So here, you know about KDE, maybe. You know about Slimbook because, well, it was launched this month ago, but for those of you who don't, I'm going to give a bit of an idea of how the story went and how we ended up here with me talking about this weird, weird project. So everything started with Baldasar, who is a very stubborn person. And, well, he needed a laptop. He doesn't consider himself a developer or even a very tech-savvy person. And he found this company who actually is founded very near where he is from. And, well, they were selling Linux laptops, so it was kind of related to what I was saying before. He was asking for a really long time, how do I do to, well, get this KDE you guys are doing on my laptop? It's not that he didn't know the answer, right? He already had a blog for years about KDE. He had been reviewing our applications, but he clearly knew that it was too complex and that it was awkward to get a laptop with an operating system to wipe. So, well, he fell in love with the product and started to poke me about it, but to be honest, I didn't really do much about it at the time because, well, it was too early. I always need, like, a couple of months to be convinced on something. Then I started pushing it like a maniac, but I need a couple of months. And it was Academy EAS in 2016 when it was in Madrid and Baltasar, because he's very stubborn, he dragged Alejandro to join the Academy EAS where he had the presentation. Alejandro is the slimbo guy, as I usually call him when I talk to you guys. And, well, he started showing us, well, the laptops that they're selling and telling us about how and why they love Linux, making products with it, and so on and so forth. And at that point, we started talking about how we could... Well, they were actually discussing whether it would make sense to have slimbo laptops shipping Neon by default. And at that point, well, I mean, they could install Neon if they wanted, because, well, Neon is free for anyone to use, so, I mean, we don't even need to give them permission or anything like that, right? But it felt like too easy and too short and narrow-minded what we could achieve. And, well, to be honest, it was something that we have discussed with many members in KD Spain from long ago, especially Alex, where we're talking about how, for example, how Apple can very well integrate with the hardware they make because, well, they know what hardware is going to be there, and we never have had this opportunity. And, well, we had some people interested in us using their hardware and giving it some love, so it was thought at least. And it wasn't until Academy 2016 when we gathered again where... Well, I sat down with Jens and Thomas, and we had a set of very long conversations about whether it would make sense to make such a project, whether it would make sense to put a lot of, or some effort into having such product happening. Actually, one of my concerns in the beginning was that we would, well, announce it, and maybe it wouldn't be a big deal, so I actually wanted at least to have some kind of consensus with my friends and not be working alone on it because it wouldn't have sucked, which is, well, also kind of a reason for doing things in KD, right? You can always work from home alone, but if you don't want to work from home alone, well, KD is a place for doing it. In any case, at that point, we started discussing what we wanted, what was the kind of thing we could offer with, well, a reasonable amount of work, and that could be directly be useful to both our, well, directly our users and to communicate the KD values and, well, the plasma features, right? So we started working on it. That was after QtCon, of course. Maybe it was between September and December. And when we knew what we wanted, we started talking about distributions, and as you know, at the moment, we've only been offering, or Slimbook has only been offering the KD Slimbook with Neon. We talked about this subject with managed distributions. Actually, it was kind of the intention to see if it would be possible to work with others, but we still didn't want to lose the grip of making sure that if our KD developer submitted a fix, submitted a new version of some software, this software would get into the devices that the users are using, which is kind of, I would say, the whole point of having a device that is provided by KD. If KD is providing some kind of quality, this quality should be on the user's computer. It shouldn't be sitting on a gift repository waiting for it to be packaged waiting for a release cycle to arrive, because our release cycle is our release cycle, and, well, it's the best we got, at least at the moment. But then, as soon as all of this was decided, we worked on the website. Actually, if you think about it, well, this website and the .news was mostly what we did. So this website was mostly Jens's work. He did most of the text and all of the graphics. And, well, if you go through it beyond the KD Slimbook anecdote, if you want, you can see a little bit the kind of things we were thinking about, the kind of things we believe that are useful and beneficial about Plasma, and the reason why we think that people should be purchasing products that are powered by, well, not only by Plasma or KD software, but by free software and open source. And, well, then there was the device. This is one of the specific things about the device is the engraved logo. It's something that we also really kind of wanted. It would have been rather weird if we didn't have our own, well, footprint somehow on the device and what we got to use this laser engraving. And I think it looks pretty cool. Also, it was done by Jens, of course. I wouldn't have been able to use our logo on a laptop. But I think it looks great. Actually, like, this is the case that the previous version of the Slimbook was using. The newer version didn't allow for laser engraving, but we actually really, really asked them if we could do something like that because we like putting our logo everywhere. But then we wanted to have good coverage. We had the product more or less defined ready. We had customized it somehow. We knew what software we wanted, right? So it was a matter of telling the world about what we were about up to. So, well, first thing, Thomas worked on the dot story alone. If you go through it, you can also see kind of Thomas' story in it and all of our thoughts at that time. But, well, it's kind of related, obviously, to what the KD Slimbook website says. And then we believe that one of the big successes of the whole enterprise has been the media response. One of the facts is that the most visited news article in the dot last year was the Slimbook announcement. And, well, in fact, not only the dot article was quite spread at some point, but lots of news sites in the business were also telling about the project. It's interesting to see also what kind of things they were, well, putting the accent on regarding the project, like whether it was a Linux laptop itself and how it was a contrast to Windows. Actually, I don't really have this impression that Windows is the laptop thing anymore. Actually, lots of people are using Apple, but, well, it looks like ZDNet do still have this impression. PC Wall, some more local news. Also, the fact that Slimbook is a Spanish company got some special trading by Spanish press, or maybe just because my Google is assuming that since I am in Spain, I look for things in Spanish, who knows. But, in general, it had a good deal of localized coverage, which is always interesting, because we cannot always get ourselves everywhere and, well, seeing others, well, being a speaker of our thoughts, it's always nice, right? And in the end, well, the conclusion, after this was announced in January, I think it was, let's see if we can see it on the dot article. Oh, yeah, 26 January. And since we've sold 44 devices, well, it's up to you to decide if it's a lot or not. I believe it's really cool. Actually, it's more devices than we've ever sold. So it's interesting. Well, technically, it's Slimbook, so those devices, right? But it's been interesting to see people not only interested in using our software, but to put their bugs and their interest on buying something that they're going to be using for the next two, three, four years or more, right? I don't know how many people, how many years. People use our laptops, but I think it's really cool. So the thing about the conclusion is that I am going to not be giving a lot of conclusions yet. I think that it's, well, more than a project itself, it's been a task by us. It's something that we have never done, and it's something that we should be thinking about whether we want to do it again, whether it was a good idea, and whether we should be doing it again, right? So one of the things I would ask you to do is to talk to those Slimbook guys that have been on the halls during the whole weekend and during Academy As as well. I hope all of you have talked to them, and, well, before Alejandro is going to tell us something because, yes, yes, yes, yes, you're going to. Thank you. Well, it's a pleasure to be here being able to meet the KD members. We have been talking with, for the last few months, VML. We are happy to see our customers who bought our laptops a few months ago are still enjoying and use it. The event also, sorry, the event also being a good experience to meet new people who have shown interest on the laptops. KDE is a powerful yet simple desktop that we are proud of it with our laptops because we think it has a necessary to be used for new Linux users and more advanced developers. The best part of Linux is the community and we think truly believe that KDE is the best one. Well, I hear that they're leaving really soon so if you have something that you want to tell them, just run to them. Alejandro and Tesar, who I believe is still there, you can talk to them there. Really nice people and very passionate about their products. Also, talk to Jens, Harald, Thomas and Jennifer and myself who are the people who have been working the most on the project. I think that after this academy it will be the right time to start thinking about what are around conclusions and what we want to make of this laptop project, laptop enterprise. So talk to them, tell them your feelings, tell us your feelings, and well, there it will be where we will use them to make up our minds. And well, from here, thanks to all of them as well for all of this work. It's been not super rewarding work. We didn't really know what would happen, but well, in the end, I think it's been really fun. We've all learned a lot of it, a lot about, well, things that are not software itself. And well, my personal thanks to you guys. And now, if you have any questions, you can tell me, because well, I don't really have anything else more specific to say. Thanks, John. Any questions? Do you have ideas on how to turn that 44 devices into more like 440 or 44000? Sorry again. Do you have ideas on how to turn that 44 devices into something more like 440 or 4400? Is that even our job, do you think? Well, there's definitely ways. I mean, for marketing, I don't know, different device, more newer device, there's definitely ideas. The question is whether it's up to us or not, right? It's up to us to make sure that Linux and pre-sovere are viable on personal informatics, right? On professional informatics as well. And we need to make sure that we are capable of being there. That's the main point from my point of view. That doesn't mean that it's our responsibility to actually be the ones selling these laptops or actually pushing them. I would be the most honored though if all of those 44 million devices are running Plasma, Kiri Software, or even pre-software, right? But we need to make sure that we're doing the best. And actually, this is an enterprise to make sure that we're doing the best and to be able to define if we're not doing the best what we should be doing to be doing the best. How come you're not using one? That's a good question. I do have one, but I use it for testing mostly. One of the things we wanted to make sure is that when a new customer got one of these laptops, if he had a problem, we would be able to react properly, right? And, well, my system setup is crazy, and it's definitely not what we want to put on, well, a delivered laptop. So I thought it would be fine. The laptop, the delivered laptop I have, the password is one, two, three, four. If any of you still said you already know the password, right? And the idea is that if somebody finds a problem, I can give it to him and test it. That doesn't mean I couldn't have two of them, but, well, my budget is limited. You got time for one more, Christian? I was just going to ask, do you know what sort of people the 44 purchases are? Are they developers? There's a similar Dell program, but I think that's really just targeting developers in enterprises. So have the people who bought these KD laptops, are they developer software developers, or are they people who are going to just use a word processor, say, because maybe there's much more advantage in it being a developer machine than a thing for word processing, I don't know. Definitely, and it's actually part of the discussion. Something that I was literally discussing with Alejandro before is whether, like, who are these kind of laptops for, if it's more of a professional kind of user. Have you asked them to do a survey, because they're probably enthusiastic. They would respond. I don't really have the names of people because laws don't allow me to have such names. I know that many of the people who bought them are, they bought it specifically because it was something by KD and they're passionate about KD. Well, some developers, you can see some people around here and people on the outside. I don't really know if I know 44 people, right? So we don't really know all of the people who bought it. But definitely, having more information is one of the things that KD has to be doing for the next few years, not only coming from the laptops we might have sold, but on all of the projects and products we want on ourselves. We need to know more about Plasma users. We need to know more about Who Buys Limbooks. We need to know more about Contact users or KD Editor users. Are we going to see soon some kind of blog post or report about the experience of productizing KD? Yes, yes. I've thought about making a blog post. I probably want to do that, but I don't want to do it before I have, well, I have a conclusion, right? I think there are no more questions. Thanks, Alex, for the talk, for sharing the story of Slamebook. It's very nice to hear that. Thank you. Thank you, everyone.


What I want to do today is the quickest shag you've probably ever seen, but I want to show you guys some techniques.  You could probably have a shag with even layers all the way around, but for me, I like kind of a rounded shape where it flows and gets heavier into the back a little bit. So that's what I'm going to show you guys today as well. We'll base this off of a center parting. What I want to do is I really want to pop some layers around the face. So I section away. Now, I think the key thing first that I would say in pretty much every dry cutting scenario is to make sure that you prep the person and you don't just go in and start cutting their dry hair. Like when I would get a dry haircut in beauty school, they would say, just cut it and then you'll save time. Like you're not trying to save time cutting things dry. You're doing it for a certain purpose. So when I cut this, like if I lift this up here, all these little hairs, they separate, right? If I were to cut this wet, these hairs don't separate as much. So even if I went into point cut, I wouldn't be taking like soft little pieces out of the hair. I'd be taking bigger kind of like chunks out of the hair, which isn't wrong. It's just different. So make sure that you understand why you're going in and dry cutting and not just dry cutting to save time. Like I said. All right. So I'm going to clip away one side and I'm going to do some elevated point cutting and work my way around the head. So I want to start off in the front, take a diagonal, just like that.  And then I want to decide what length I want to start with. So where do I want this on the face? The higher the elevation that happens, the softer the shape is going to be or the density is going to be on the face frame. So I bring it over here. Nice kind of medium elevation. This is pretty much 90 degrees at this point. So bringing it over, little over direction to here and now I'm going to go in and point cut. And I'm going to have a really nice broken line. Still precise, but it's just shattered. And then I drop that down. You can see the angle that starts to create because of the over direction.  You'd have a straight feel because I brought it over here. Now I start to get that angle. Anytime you want to push length and weight, you pull it away from where you want it to be. Take another diagonal parting and that's going to come right to the same guideline right across the head and a nice deep point cut in there. And maybe I'll recomb because I'm starting to feel that density building up right here and I'll just recut and soften just the edge of that section. So now I start to break it up in there and I'll work my way all the way across the head, bringing that hair to the stationary guide. So then when you pull this back, you can see all these layers starting to happen in this haircut, some shorter pieces can always go in. We're going to create some more layering in there, but that's the foundation of what this cut is going to be. So I'm going to do the same thing on this side. Now I'm going to smooth it out just because what happens when you smooth hair for cutting is that you smooth it and it becomes very straight. Then when you cut these shorter pieces in here, they're almost poker straight because there's no bend to it because it was ironed longer. So I'm just going to go in the same way that I cut the hair and instead of elevating it like I cut it, I'll just bring it across the face and give it a slight, just a slight bend, nothing crazy. Now I'm going to use this Joyco Beach Shake. This is a pretty fun product. Sounds like spray paint.


What a good girl. Hey, slow dance. I'm going to show you how to slow dance. Come here. You got to give each other hugs in these slow dances like this. See? That's how we slow dance. Hello. That's the slow dance. Thank you. Hey, let it go on.  I danced the first slow dance with you. Hey, when you get married, you owe me one. Another dance, another slow dance.


I will walk through some of the elements of XML schema because we are now transitioning away from DTDs. DTDs were very inflexible they did not give us some of the flexibility that was required that is being provided by schema descriptions right. So that is the first bullet so the flexibility provided is better than DTDs right. The XML document syntax right how I describe what the XML document is going to look like is also in XML in this particular case right. So all your XML authoring tools that you have XML spy this and that can be used easily to author schema descriptions right. Non-textual data types which are very important to B2B and e-commerce so for example numbers in XML you could only describe strings of characters right eventually that has to be translated by a parser from a string to an integer done something here there is a type system that is actually embedded there is a data model that is provided for the XML scheme right and much more complex syntax. So XML schema is not part of 1.0 it is come after that so just valid does not valid only means that it is validated with respect to a DTD so schema valid means that it is validated with respect to a schema description because the rest of it is similar so it is very similar to classes and objects in OOD right. So class is a template in object oriented design schema is a template and then every XML document is a schema instance of similar to an object definition so there are two things that we end up doing within XML scheme we create new types right and we use these types in declarations so creating new types of the definition and we use these types and that forms a declaration here is a very quick example of this creation of a type called zip union and the zip union is actually a union type we will see what a union type is is just a simple example right so that has a either a bunch of state zip codes or it has a bunch of integers some random integers right so it is a union so one of the two will be picked so here the declaration is shown down here right so which actually uses the zip union and I will declare an element of type zips this is also part of the schema definition. Now you have a notion of simple data types as well as the more complex data type which are formed out of aggregating multiple simple data types as the name suggests right a simple type does not have any sub elements associated with it they are more fundamental in nature right either attributes or element no sub elements at all right either so they come where do they come from why do we want simple types it is like a type def in a programming language right so a predefined type would derive from this and you can put certain restrictions on a type def also it is that notion and complex types are basically aggregating these simple types or different elements under you have the basic simple types that exist you do not have to go through this list so predefined simple types is I want to call something a title for a book let us say it is a string the title is nothing but a string a string is already a built-in type for me what I will type this to type def this to be a title say a similar heading topic price whatever right so there are multiple examples that I have here so one is an attribute the rest of them are elements you all played with XML before right I hope you have because this is a precursor to this otherwise it is going to be a problem I am assuming that you are familiar with XML and you have used DTDs before this is where we are discussing schemas only right so you restrict simple types to get derived simple types right one was a type def that we did but now we can do restrictions based on some base type that we have that already exists and the restrictions come in the form of facets right so these are certain rules of restriction let's take a look at example I think examples of the best way to understand this I am going to call something my integer the base type is an integer right for my integer is restricted to be within 10,000 and 99,999 so value between these two numbers let I restrict so I call that my integer so this is actually a simple type but say derived simple type where I have put certain facets or restrictions there are two facets here mean inclusive max inclusive mean inclusive is 10,000 included is a minimum and 99,000 include is max inclusive you know many different types of restrictions here is another restriction I say SKU basically a sales code for some product that I am selling it says string but it has some pattern the string has to have this kind of a pattern so it is three digits followed by hyphen right followed by two uppercase letters aske letters right so any SKU is any string that is conforming to this part right so this is an enumeration so it is called a 2D shape the 2D shape is also a string but it has to be one of these set of strings that I am give specifically a list of things that I am going to put down here right square circle triangle whatever you can have any number of these okay complex types contain different element declaration references attributes etc it is a contained right so here is a complex type we call it an Indian address although we can never capture an Indian address in XML that is my typical Indian address would be in front of the tree next to two buffalos which are normally standing there which is so anyway so this is our address that only the Indian postal system can deliver to nobody else can find that address right so we have to catch all of the postman so this has a name street city state zip it will be a nice way of being able to define addresses now here I have given I also as an attribute which is country because an Indian address I am going to fix it to a particular token which is IN which is standing for Indian right so I do not have to explicitly specify this attribute every time I use address already seen this so this contains only declarations involving other simple types right we saw that these are all strings and decimals then what else so this is a purchase order now this contains other complex types because it contains Indian address within it is a ship to address and as a bill address bill to address both are Indian addresses right so and it can also contain comments right it doesn't have to contain comments so minimum occurrences of a comment or zero doesn't have to contain a comment is what it means right then it has an attribute which is the order date which is of type date there is no default value for that same thing so elements such as attributes you have already seen right there is no need for me to go through this this is part of the standard XML so references also you have heard of reference notion in XML you are familiar with I am presuming right so okay so occurrences these are different facets basically right so I have min occurs max occurs that you already know what it means we use minimum number of occurrences maximum number of occurrences of certain elements then it is fixed that means that it is fixed to a particular value right so it cannot change if the element appears it doesn't have to appear but if it appears the value must be something so if it is a string in this case it has to be Anna whatever right otherwise the value is set to this by the parser right the notion of the difference between default and fixed is that in the case of fixed the value must be this in the case of default if it appears right then the value is set to whatever is specified as the default point right so it doesn't have to be fixed so this is in this case it doesn't have to be fixed it can be anything but if it is there and it doesn't have value it is assigned to default right so filler so these are examples of these types so is so min occurs one max occurs one that means it has to occur one time this test is a string it has to occur one time right how so there is also the specific value got unbounded which can be any number of so there is a notion of use aspect and value aspect for occurrences of attributes right so I think the example is better the use is required so attribute name is test type is string the value the use is required and the value has to be 37 right or it can be optional and fixed so there are different combinations that can be created out of this right the use is required optional fixed or default right so one of the four things this is just an example that is dumping everything into the same it shouldn't be like this because there are some contradictions here it is just illustrating the fact that you can use this different values of the facet of use that's all so here's a good example of a fixed value which is India for the name country which is an attribute of the address you don't have to specify address yeah I mean you don't have to specify country it will take India to be the value which is fixed for anyway for these addresses right so you can have enumerations or unions those are the other two types that can be assigned to different attributes and what the name implies enumeration is one of these different types of values that I'm going to give you a union is with respect to the base type itself right here's a complete example of book contents it has a complex type of I'm calling contents type and since it's a complex type it involves other types within it other complex types as well within it has a heading it has a topic all the restrictions specified you can go through this this is all part of your handout and we can also have lists basically sequences of the simple types that you can build up similar the notion of a programming language built-in type of list you can have three types of lists ID refs you know what ID refs are right they were appearing in GGDs as well right and different entities that can exist and different facets list or what is the length of the list min length max length enumeration with so again here's an example I'm going to create a list of my int type remember my int type was the my integer right my integer was a type that I had created earlier in one of the examples and I'm going to use that to create a list of that type so if I in the instance so this is actually the schema in the instance it will be list of my int right which is a type that I've created and some set of examples with each one of these numbers is between 10,000 and 99,999 right here's a list type with a facet the facet is the number of items that can appear in the list is six colors is the name of the type that I'm creating right it has a length of six is what we're saying right and it's a color list so base type is colorless I'm understanding it's assuming that there is some base type called color list and that base type has been defined here is a list of colors right so a list of colors is also a list type now I'm restricting that further to say that it can only have six colors right in this particular type define a list of exactly six words so six colors would be the tag that I'll use here because that is what I'm going to use as a restricted time okay so you can already see that there is a lot more flexibility with respect to DTD so schema gives you a much more full type system that you can play with right so unions are again it takes either this type of value or that type of value but not both at the same time right at a given time we can only take on one type of value that's a union right facets are what is the pattern and what is the enumeration so here is an example of a color union but the color union actually either has color or it has something random list of my intake right in this case it is random so it can either be color or it can be list of my intake it can't be both so you can't have an XML tag which which contains both list of my integers as well as color it turns out that this example is not fully right because list of my in type should have numbers between 10,999 99,999 anyway so explicit typing is very actually described the type right and then included somewhere else or you reference it somewhere in an attribute implicit type is as you're doing a definition you will not be creating a separate type you will just create do a type specification okay a name is given to a type is explicit type right list of my integer types a color union these are all explicit types that I had created right implicit type is it is kind of inlining the notion of an inlining right I haven't created a separate function for it but I am using it separately it's nameless right so here the explicit is pretty easy we understand this the implicit is here right so this book example is this a book example is not the book example but anyway so this is an implicit type that I have created right but I have not named this to be of some type that's the notion right in other words I haven't created this outside and then used it in this particular items complex type that I am creating now in this items complex type there is some other complex type that I have created in here right it's a well this is actually a direct simple type it's not a complex right so direct simple type in which I have taken a positive integer is based the restriction is a positive integer right on this and the max exclusive value is 100 right that means it can only be between 0 and 99 that's what it means but I have not named this to be of anything that I can reuse somewhere else right that is part of this schema itself and it's only appearing once but I can't reuse this that's the problem if I do it implicitly I cannot reuse it I want to reuse it I have to create is it an explicitly named type and then reuse it also so complex types from simple types can be created in this way so I have a price right usage in some document instances price and then the type is this much of the XML schema I gave this and this is the actual instance right now I want to create something called international price where currency is in euro this is an attribute currency is in euro right how do you do this describe this in the XML schema right this isn't come to confirm to this remember right I have described this is an instance this specific instance appearing in an XML document what would be the corresponding definition and XML schema a simple type can't have attributes so we can't do this so we have to create a complex type here it was just a simple type prices decimal that's it but here because the currency is euro I have an attribute and simple type can't have attributes I need to define a complex type called international price in this particular case right so it has some simple content and it has an attribute associated with it and the attribute is a string will describe the currency in which this decimal is to be interpreted right you can also mix things here the letter body which mixes sub elements and just plain old character data right so dear mister and then there is some sub element associated with it which is name happens to be a Mardu Bay whatever again this is an example of mixed content in which the two previous types that we went through where mixed with each other there is no content that is actually associated with it the content model of the complex type is actually being extended in here so I create default restrictions of the any type is a base type within XML schemas which can stand for anything it's what is the equivalent it's like object in Java right so object can be specialized to anything everything will eventually be routed as that object everything is XML would be routed at any time right everything would be eventually derived from this it's actually a dangerous thing to use this any type because you won't be able to type it to a specific kind of entity very easily so you normally not want to use this so the advice is to use more constraint types this can stand for anything basically it can be a string it can be an integer value it can be a date it doesn't matter but you're not getting specific enough information from this as to what it is so in general you don't want to use this but if you don't have a good idea of what the value is expected to be then you will stick an any type in there annotation is so there can be documentation annotation right so you can say that this document consists of stuff relating to whatever right and then there can be application so for example XSLT I want to do transformations with this CSS kind of annotations and so on for style sheets so here is an example of an documentation annotation it is this is an element that is declared with an anonymous type is what I'm saying this is to be interpreted by human the parser will just give this back as documentation and you do whatever you want with that it is mainly meant for humans to read eventually and do something another documentation annotation also so grouping I don't think we want to go through this given the time restrictions but it's unlikely that you will use grouping but here is an example that I can group two different addresses it's called a ship and bill address I create a sequence group both of them are of type address and then now you are given the choice between either a ship and bill address which is a group or a single address which is of type address so you can pass any one of these at this point time so it's an either or in here it's a choice between one of these two right so in other words if the actual XML document contained a group of such addresses I'll take it if it just contained a single address I'll probably use it as both a shipping address and a billing address that's my interpretation of this right I'll still consider it to be a valid XML document with respect to this scheme that's the notion of a choice so I can also do collective restrictions collective restrictions instead of specifying restrictions for each item separately I will say that I'm going to group all of this into one entities so this is an XSD colon all right and whatever restrictions I put out here will apply to all of them right with their own apply to comment bill to address ship to address items that are in there etc right so this is also a notion of a grouping and so the attribute for example refers to this whole thing the order date attribute groups probably a little more detailed than what we want to get to but this attribute groups can be used to replace individual attribute declarations this is one thing that is a little important because you will see this notion of a namespace in almost every document in visual documents that you you write you see you have to describe the namespace because there is a different every document XML document that you write would will have a target namespace that it is part of right and it might also refer to things in other namespaces that are source namespaces from which you import definitions right so target namespace is going to be assigned to the schema that you are actually creating at that point so you have to say that this belongs to this target namespace it may be a company name for example right so I describe a PO this company my company is some XYZ business and purchase order definition is specific to this business right that's the notion so one target namespace has to exist and many source namespaces is coming from different places right so in this example the target namespace is www.samplestore.com slash account and I am going to use an account namespace that I am getting from somewhere else right in here that I am going to call ACC this is a name that I am giving that namespace and the account namespace is actually going to be used in here so I am going to declare an element of the product ID that is actually a product code coming defined in this particular namespace account right it turns out that even this definition that I am doing is going to go into the account namespace right so I have to import whatever definitions are there in this account namespace I for the purposes of this definition I call it ACC and I can use whatever is defined within the account namespace in here by referring to it as ACC colon something else okay the same thing is explained so there are obviously the XML elements themselves have to be defined somewhere so there is a namespace that is defined as W3C.org which is the XML schema namespace so importing schema from some schema location this is what I have done well this is the older example does not specify the location of the source schema files here is the example I am going to import a particular namespace which location is specified in this way so this was I guess part of your question is what if I give a local location on disk there would be a problem if it was sent to a place where C colon would not mean the same thing if it was sent to another machine in other words so I am going to call this part right and the parts catalog is being imported from this particular thing so this is being for the purpose of this definition I am going to call it part and then I refer to part something part colon super glue type whatever that happens right so it's basically a namespace delineator to say because there could be other super glue types defined somewhere and if I am inheriting a namespace I have to be explicit as to which super glue type I am referring to it otherwise there would be a clash this we are saying this is the declaration of I am going to use the namespace that I am going to call part right and that namespace is being imported from this location right so this is the part is this it refers to this this is being imported from this location and wherever else in the document I refer to some definition from within this I will say part colon that is all I am saying right see in this case is both the target and the source ACC is both the target and the source right because I am going to go into target which is a sample store.com slash account but that also happens to be a source because I may refer to other definitions that have been made in this before okay so this is we kind of quickly skip through some of this which is okay but attachment actually has all these slides so you will be able to go through this at your leisure the status of this W3C recommendation has been obviously this is a adopted and a lot of tools that will deal with schemas exist for you so the best thing to get a schema primer a lot more details on this is to go to the W3C site which is the standardization organization anyway so you there are a lot of resources that are available at that site including example schemas and stuff that you can look at right so that is W3C.org is your starting point and then you can search for things from within there okay you can create more complicated data out of this alpha numeric and character yeah correct that we use mime types as soap attachments so when we actually send soap messages the soap message is in XML but you can have soap attachments that can be other kinds right so we'll take a look at that when we describe soap okay but it can be done because the common thing that you might have to do is to send a picture a jiff for a jpeg or something like that I as part of the web service so you can do that using soap attachments yeah so that are nothing to do with XML per se that just says that I'm going to ship something else here even a jiff if you want to send this XML can be serialized out into XML format and send which is possible to do that eventually there has to be an on-the-wire representation of that either it can be binary or it can be textual XML is a textual representation of something that's on the wire right so both the choices exist but we'll use soap attachments for that purpose we have to specify by default it is it depends on the binding that is specified right you can actually say what the binding is you can say that this is going to be an RPC type call done using HTTP or whatever for the HTTP it is easy for it is easy to do RPC type calls because the correlation of the request and reply is automatically done for you if it is two one-way messages and you want to RPC then you have to correlate which request is correspond which reply corresponds to it request because if I fire 10 requests and 10 replies come back I have to correlate those messages somehow that means I have to explicitly encode a message ID or request ID or something and I have to say okay this reply will repeat the request ID that I had sent and therefore this is meant for this particular request but with HTTP that correlation comes for free for unique code you will actually specify the encoding also as part of the binding right UTF-8 whatever it is that the encoding is as to be specified UTF-8 is an example of an encoding that is to be done right so it doesn't have to be UTF-8 it could be unique code also